我有一个字符变量,其中包含表示诊断的条目。我想要创建一个变量来表示是否存在特定的诊断。
例如,在下面的数据框架中,我有一个称为诊断的变量。这个变量包含数字串,数字代表不同的诊断(例如,1=糖尿病,2=抑郁症)。我想要编码一个新的变量,以指示字符变量是否包含我感兴趣的数字(例如,2=抑郁)。
Diagnoses Relevant_Diagnoses
1,3,5,7,8 0
1,2,3,4 1
2,3 1
3,5,8 0
我得到了下面的代码,但我知道我需要更改最后一个ifesle语句,以便检查列表中是否包含了2(而不是==2),但我不知道如何包含。做这件事最好的方法是什么?
df$Relevant_Diagnoses <- ifelse(is.na(df$Diagnoses), NA, ifelse(df$Diagnoses == 2, 1, 0))
非常感谢你的帮助!
发布于 2021-08-06 14:01:48
您可以使用以下方法:-
df$Relevant_Diagnoses <- ifelse(is.na(df$Diagnoses), NA,
ifelse(grepl("2", df$Diagnoses), 1, 0))
发布于 2021-08-06 13:54:12
这可以通过grepl函数来完成,以检查子字符串。
grepl('1,2,3,4', '2', fixed = TRUE)
会返回true,并且可以集成到您的函数中。
https://stackoverflow.com/questions/68682707
复制相似问题