全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1882 4
2015-06-07
悬赏 20 个论坛币 已解决


想对var1到var8求均值 ,  
规则是,但是有些可能有缺失值,对于存在缺失值的,求均值的时候不进行计算。

如果var1到var8缺失个数大于等于6,那么meanvar就为缺失值



varvar1var2var3var4var5var6var7var8meanvar

2

1

2

3

4

5

6

7

8

3

2

2

1

2

4

2

6

8

9


最佳答案

sas那个石家庄人 查看完整内容

data one; input v1 v2 v3 v4 v5 v6 v7 v8; cards; 1 2 3 4 5 6 7 8 2 . 2 . 1 2 . . . 2 . 6 . 8 . 9 ;;; run; data two; set one; array var {*} v1-v8; count=0; do i =1 to 8; if var{i}=. then count+1; end; if count >=6 then meanvar=.; else meanvar=mean(of v1-v8); run; mean函数会自动忽视缺失的值
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2015-6-7 09:01:33
data one;
input v1 v2 v3 v4 v5 v6 v7 v8;
cards;
1 2 3 4 5 6 7 8
2 . 2 . 1 2 . .
. 2 . 6 . 8 . 9
;;;
run;
data two;
set one;
array var {*} v1-v8;
count=0;
do i =1 to 8;
if var{i}=. then count+1;
end;
if count >=6 then meanvar=.;
else meanvar=mean(of v1-v8);
run;

mean函数会自动忽视缺失的值
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-6-7 11:46:20
sas那个石家庄人 发表于 2015-6-7 11:02
data one;
input v1 v2 v3 v4 v5 v6 v7 v8;
cards;
哦    我以为有一个缺省那么函数返回值就是缺省的  
那如果用括号  加法  然后再求平均    结果应该是缺失的吧
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-6-7 12:11:57
小鳄鱼a 发表于 2015-6-7 11:46
哦    我以为有一个缺省那么函数返回值就是缺省的  
那如果用括号  加法  然后再求平均    结果应该是缺 ...
直接用加法的话 由于有缺失值的存在 加出来的总值也会变成缺失

如果想算全部的 可以用 sum(of v1-v8)/dim(var)
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-6-11 17:32:48
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群