由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Statistics版 - SAS Question
相关主题
Dataset merge的一个问题请问R Code和 Matlab Code 思路是否近似?
问个效率问题 SQL vs data step,大数据量SAS data merge求助
求一段SAS code请教一个用SAS作DATA MERGE的问题
求教 SAS base 123 Q 16贡献SAS Programmer 面试问题并求答案
SAS里怎么根据VALUE来选择需要OUTPUT的COLUMNSwhich route in SAS is faster?
R 可以读写SAS dataset了为什么合并这两个数据不能用sas merge 而要用SAS SQL
问有关sas的画图问题a sas merge question
How to append data sets in SAS?新手请SAS合并数据集问题
相关话题的讨论汇总
话题: person话题: sas话题: t2话题: disease话题: sex
进入Statistics版参与讨论
1 (共1页)
Y*H
发帖数: 1582
1
I have two datasets,one finds if a person has the type of disease(a,b,c,d,e)
. One has the corresponding risk factor for each disease.
How can I use SAS to calculate the total risk? I'm thinking about making two
arrays and multiply them together but do not know the code...
Any help is appreciated. Thanks!
A B C D E Sex
Person 1 0 1 0 1 0 M
Person 2 1 0 1 0 1 M
Person 3 0 0 0 0 0 F
Person 4 0 1 0 0 0 M
Pers
j*****e
发帖数: 182
2
merge the two dataset by person.
A*********u
发帖数: 8976
3
by gender

merge the two dataset by person.

【在 j*****e 的大作中提到】
: merge the two dataset by person.
Y*H
发帖数: 1582
4
谢谢楼上2位!
请问用merge的话,程序哪里会计算total risk呢?merge不是只能把2个dataset合成
一个么?这样的话是不是要人工输入rate?实际的dataset有200多种disease rate,是不是不管怎样都要人工输入一遍disease rate?麻烦不怕,主要怕输错数。
我SAS很菜。。。请高手指教,谢谢!
A*********u
发帖数: 8976
5
merge可以同时merge多个
最多多少个记不清了
大不了分两到三步应该就行了
total risk你不是都有公式了吗
merge以后不就是一行code吗

谢谢楼上2位!
请问用merge的话,程序哪里会计算total risk呢?merge不是只能把2个dataset合成
一个么?这样的话是不是要人工输入rate?实际的dataset有200多种disease rate,是
不是不管怎样都要人工输入一遍disease rate?麻烦不怕,主要怕输错数。
我SAS很菜。。。请高手指教,谢谢!

【在 Y*H 的大作中提到】
: 谢谢楼上2位!
: 请问用merge的话,程序哪里会计算total risk呢?merge不是只能把2个dataset合成
: 一个么?这样的话是不是要人工输入rate?实际的dataset有200多种disease rate,是不是不管怎样都要人工输入一遍disease rate?麻烦不怕,主要怕输错数。
: 我SAS很菜。。。请高手指教,谢谢!

Y*H
发帖数: 1582
6
一共有上万个人-_-
a*******a
发帖数: 1336
7
consider using SAS IML
Y*H
发帖数: 1582
8
wo kan kan

【在 a*******a 的大作中提到】
: consider using SAS IML
g**r
发帖数: 425
9
There are many ways to do this, but one way is simply reformat the disease;
the most straightforward way is operate in the first data:
if A=1 and sex='M' then DA=0.5;
if A=1 and sex='F' then DA=1;
etc.
Sounds very tedious, but you can use a simple data step on your second data
to do this; something like the following and then copy it from your log.
data tt;
set test;
array d(2) a b;
array cn(2) aa bb;
do i=1 to 2;
*put "if" vname(d(i)) "= 1 then " vname(n(i)) '=' d ;
c=
l****h
发帖数: 272
10
Use Proc SQL, assuming dataset1 is named t1 and dataset2 t2.
PROC SQL;
CREATE TABLE RiskTable AS
SELECT T1.*, (T1.A*T2*A + T1.B*T2*B + T1.C*T2*C + T1.D*T2*D + T1.E*T2*E + T1
.F*T2*F) AS riskscore from T1, T2 WHERE T1.gender = T2.gender;
run;
the result is stored in the new dataset "RiskTable"
1 (共1页)
进入Statistics版参与讨论
相关主题
新手请SAS合并数据集问题SAS里怎么根据VALUE来选择需要OUTPUT的COLUMNS
excel一问R 可以读写SAS dataset了
一个实际应用的SAS问题问有关sas的画图问题
SAS CODE求助How to append data sets in SAS?
Dataset merge的一个问题请问R Code和 Matlab Code 思路是否近似?
问个效率问题 SQL vs data step,大数据量SAS data merge求助
求一段SAS code请教一个用SAS作DATA MERGE的问题
求教 SAS base 123 Q 16贡献SAS Programmer 面试问题并求答案
相关话题的讨论汇总
话题: person话题: sas话题: t2话题: disease话题: sex