我有以下数据框:
set.seed(1)
Data <- data.frame(id = seq(1, 10), age = seq(45,54),
Diag1 = sample(c("A123", "B123", "C123"), 10, replace = TRUE),
Diag2 = sample(c("D123", "", "A155"), 10, replace = TRUE),
Diag3 = sample(c("G123", "H123", "I123"), 10, replace = TRUE),
Diag4 = sample(c("A123", "B123", "C123"), 10, replace = TRUE),
Diag5 = sample(c("J123", "K123", ""), 10, replace = TRUE),
Diag6 = sample(c("", "N123", "O123"), 10, replace = TRUE),
Diag7 = sample(c("P123", "Q123", "R123"), 10, replace = TRUE))
我在 Diag1-7 列之一中寻找以“A1”开头的所有 id
1)我知道如何在完整的数据框中搜索一个特定的因素:
y <- Data[apply(Data,1,function(x) {"A123" %in% x}),]
2)我知道如何在一列中搜索模式:
x <- Data[grepl("A1", Data$Diag1),]
A) 我想以与 1) 中相同的方式在所有列 Diag1-Diag7 上使用 grepl。
B)如果可能的话,我想创建一个名为“result”的新变量,如果行中有“A1”则包含 1,如果行中没有“A1”则包含 0。
非常感谢