我有一个数据库,其中一些人可以进行多次诊断。
ID dx1 dx2 dx3 dx4 dx5 dx6 .... dx200
1 343 432 873 129 12 123 3445
2 34 12 44
3 12
4 34 56
基本上,如果任何“ dxs”等于某个数字,我希望能够创建一个新变量
R中有没有一种快速方法可以扫描所有dx变量而无需使用数百个if语句?所有不同的变量都具有相同的格式(dx#)。
感谢所有帮助!
答案 0 :(得分:0)
一种productTagsArray = [["product1" : [kale]], ["product2" : [organic green kale, organic, green, kale]], ["product3" : [organic cucumber, organic, cucumber]]]
R解决方案:
allProductSearchResults = [["product2" : [organic green kale, organic, green, kale]], ["product1" : [organic kale, organic, kale]], ["product3" : [organic cucumber, organic, cucumber]]]
逻辑是:base
将沿着每一行进行扫描,并计算等于12的条目数。通过在其末尾添加# toy data set similar to yours, but slightly different
df <- data.frame(
ID = 1:4,
dx1 = c(343, 34, 12, 34),
dx2 = c(432, 12, 15, 56),
dx3 = 20:23,
dx4 = c(12, 9, 9, 9),
dx5 = 30:33
)
df$highBP <- rowSums(df[, -1] == 12) > 0
,我们将倒数到1(如果至少有1个条目)或0。
请注意,rowSums(df == 12)
将去除第一列(以免错误诊断12号患者)。在更丰富的数据框中,您将要更加小心以这种方式选择的列。