我有一个如下所示的数据集:
#homeBoxShadow{
text-align:center;
width: 300px;
margin: 0 auto;
height: 100px;
background-color: black;
opacity: .5;
box-shadow: 10px 10px 5px #888888;
color: white;
font-size:3em;
text-shadow: 3px 4px 5px #000;
line-height: 90px;
}
我尝试创建一个名为id diagnosis
1 a
1 b
1 c
2 d
...
的新变量,为binary
的每一组1
赋予id
的值{{1}是diagnosis
。现在我的代码看起来有点像这样:
a
此输出如下:
data temp;
set a.dataset;
if diagnosis = a then binary = 1;
else binary = 0;
run;
换句话说,我希望输出看起来像这样:
id diagnosis binary
1 a 1
1 b 0
1 c 0
2 d 0
...
有人可以帮忙吗?
答案 0 :(得分:1)
我假设初始数据按id排序,我设置了一些额外的输入记录:
data have;
input id $ diagnosis $;
datalines;
1 a
1 b
1 c
2 d
2 e
3 f
3 a
;
数据步骤解决方案可以使用合并,例如:
data want;
merge have(in=in_h)
have(in=in_h2 where=(diagnosis='a'));
by id;
binary=(in_h=in_h2);
run;
如果数据按id 和诊断排序,那么您可以尝试:
data want;
set have;
by id;
retain binary;
if first.id then
binary=(diagnosis='a');
run;
此致 阿米尔。
答案 1 :(得分:0)
你可以试试这个:
结果1:
SELECT id, diagnosis,
CASE diagnosis WHEN 'a' THEN 1 ELSE 0 END AS binary
FROM Your_Table
结果2:
SELECT id, diagnosis,
CASE id WHEN 1 THEN 1 ELSE 0 END AS binary
FROM Your_Table