我有一个这样的数据框:
id adit diag1 diag2
2 3 4230 2234
3 5 3345 4456
4 6 4567 4467
我想使用下面的伪代码添加其他2列
dse1
和dse2
:if diag1 contains 4230 then dse1 = 1 else dse1 = 0
if diag2 contains 4567 then dse2 =1 else dse2 = 0
我用这个:
for (i in 1 : nrow(dse)){
for (j in 3: ncol(dse)){
if dse[i,j] %in% ("4320"){dse$dse1 = 1}
else{dse$dse1 = 0}
if dse[i,j] %in% ("4567"){dse$dse2 = 1}
else{dse$dse2 = 0}
}
}
但是这些不起作用。
最佳答案
无需使用循环,例如使用ifelse
dse = within(dse, {
dse1 = ifelse(diag1 == 4230, 1, 0)
dse2 = ifelse(diag2 == 4567, 1, 0)
})