楼主: johnick
2782 8

【求助】观测间两两运算 [推广有奖]

  • 0关注
  • 0粉丝

已卖:338份资源

高中生

95%

还不是VIP/贵宾

-

威望
0
论坛币
1756 个
通用积分
0.0750
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
280 点
帖子
27
精华
0
在线时间
35 小时
注册时间
2008-11-18
最后登录
2020-8-6

楼主
johnick 发表于 2011-4-9 10:32:56 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
呵呵~不好意思,发了好多贴,不过因为主题不一样,所以分开发啦~也方便后人检索~~

我的目的是要分组两两做compare-means的t检验。
现在有一组观测:

group value
1 1
2 2
3 3
1 4
2 5
3 6


我先把数据读入,然后按照group分组,取得平均数,代码如下:
  1. DATA test;INPUT group value;CARDS;1 12 23 31 42 53 6;
  2. PROC SORT DATA = test;BY group;PROC MEANS DATA = test NOPRINT;VAR value;BY group;OUTPUT OUT = cp_means MEAN(value) = mvalue;RUN;
复制代码
现在名为cp_means的数据集中,有如下数据:

group _TYPE_ _FREQ_ mvalue
1 0 2 2.5
2 0 2 3.5
3 0 2 4.5


第一列为组标签,第二列忽略,第三列为N,最后一列为mean,3、4列都要用到t检验的计算中。

现在想请教一下高手:如何进行观测(行)之间的两两运算,如果嫌t检验公式麻烦,那示范一下两两运算加法的代码即可~~~谢谢啦!!!!!
二维码

扫码加我 拉你入群

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

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

关键词:Compare output Group value means 求助 运算 观测

回帖推荐

sas_user 发表于8楼  查看完整内容

希望没理解错 data a; input group valueA; datalines; 1 1 2 2 3 3 ; run; data b; input group valueB; datalines; 1 4 2 5 3 6 ; run; data mean; merge a b; by group; mean=(valuea+valueb)/2; run;

本帖被以下文库推荐

沙发
johnick 发表于 2011-4-9 14:28:47
自己顶一下~

藤椅
ntsean 发表于 2011-4-9 20:14:18
你的data似乎不全
如果做t检验,那得知道方差啊
如果两辆之间算差,用sql就可以了

板凳
johnick 发表于 2011-4-9 20:36:16
3# ntsean 是的,这个data是我临时编的,真实的data有方差的~~谢谢提示~
重点想知道怎么两两进行运算,可否指教具体sql语句?

报纸
ntsean 发表于 2011-4-9 20:57:26
data a;
input group mean;
datalines;
1 3
2 4
3 7
4 1
run;

proc sql;
create table diff as
select a.group as group1,b.group as group2, a.mean-b.mean as diff
from a as a, a as b
where a.group<b.group;

proc print data=diff noobs;run;
johnick 发表于 2011-4-9 20:36
3# ntsean 是的,这个data是我临时编的,真实的data有方差的~~谢谢提示~
重点想知道怎么两两进行运算,可否指教具体sql语句?

地板
johnick 发表于 2011-4-9 21:11:48
5# ntsean
不太懂啊。。a.group是数据集A的group变量么?那b.group又是神马?B没有创建过呀。高手可否解释一下思路?
而且sql调用好像不是一时半会可以学会呀,可否用非sql方法做捏?因为小弟初学sas,才刚掌握基本的data步和一些如means、freq之类的proc~~
谢谢啦~~~

7
johnick 发表于 2011-4-10 08:55:03
自己顶一下~~~~接着求教~~~~

8
sas_user 发表于 2011-4-10 09:30:52
希望没理解错
data a;
input group valueA;
datalines;
1 1
2 2
3 3
;
run;

data b;
input group valueB;
datalines;
1 4
2 5
3 6
;
run;

data mean;
merge a b;
by group;
mean=(valuea+valueb)/2;
run;
已有 1 人评分经验 论坛币 收起 理由
bakoll + 3 + 3 精彩帖子

总评分: 经验 + 3  论坛币 + 3   查看全部评分

9
johnick 发表于 2011-4-21 17:12:42
8# sas_user
恩,你的方法很不错,但我的数据是凌乱而繁多的,所谓两两,指的是任意情况下的两两,而不是规则数据的两两。比如:
group (只看group吧,value略去)
1
2
3
1
2
3
1
1
2
1
1
2
3
3
3
2
……

这样子杂乱的数据如何两两操作呢?

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-26 11:15