全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2785 5
2009-03-12

求助:样本统计量的问题

有20个变量,它们的观测为 0  到 9 的数字。
现在我想统计这20个变量中每一行有几个0 或几个1。有没有什么简单的方法?

如:下列的观测,需要统计一行变量值等于1的有几个:
2 1 3 5 1 7  这行观测中等于1的,有2个

1 9 4 1 1 8  这行观测中等于1的,有3个

谢谢!!

[此贴子已经被作者于2009-3-12 15:47:20编辑过]

二维码

扫码加我 拉你入群

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

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

全部回复
2009-3-12 08:41:00

记录和变量听着有点混啊

不过,说到底,不过就是个编程序计数的问题嘛

二维码

扫码加我 拉你入群

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

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

2009-3-12 10:59:00
用数组
二维码

扫码加我 拉你入群

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

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

2009-3-12 15:45:00

我是想统计每一行观测中,有几个1。

求助:能不能说的具体点。

二维码

扫码加我 拉你入群

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

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

2009-3-12 17:19:00

如果是一个变量取值为一串数字 x=“2 1 3 5 1 7”,那么用以下语句

data temp;

set a;

count=0;

do i=1 to 6;

if scan(x,i," ")="1" then count+1;

end;

run;

如果是一行记录的话是六个变量:

%macro t;

data temp;

set a;

count=0;

%do i=1 %to 6;

if var&i.=1 then count+1;

%end;

%mend;

%t;

运行这个宏就行,大家一起讨论啊

二维码

扫码加我 拉你入群

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

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

2009-3-13 07:37:00

下面是一个比较简单的方法

data I6397 (drop= seed_1 i j);
 seed_1 =6397;
 array Var{20} var1-var20;
 do i = 1 to 5;
    do j = 1 to 20;
   var(j) = int(ranuni(seed_1)*10);
 end;
 output;
 end;
run;
data _null_;
    file 'D:\Mysas\SASData\TempResults\I63.txt' dlm=',';
 set I6397; /* this is your dataset */
 put var1-var20;  /* write 20 variable names at here */
run;
data I63_Count;
   infile 'D:\Mysas\sasdata\Tempresults\I63.txt';
   format line $50.;
   input line $;
   One=count(line,'1');
   zero = count(line,'0');
run;
proc print data=I63_count;
run;

output
 Obs    line                                    One    zero

1     2,6,6,3,4,4,4,2,5,8,1,1,1,7,0,1,8,4,3,9     4       1
2     6,4,0,3,6,3,0,5,7,7,3,7,9,5,0,3,4,1,9,2     1       3
3     2,4,3,9,3,5,9,3,9,2,5,2,6,7,9,5,2,0,4,8     0       1
4     6,5,2,3,4,0,5,4,6,5,1,2,2,9,2,0,4,5,0,8     1       3
5     2,0,4,6,8,8,4,7,6,2,4,6,6,7,2,5,5,9,3,2     0       1

二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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