我想仅从包含子字符串的字符向量的一部分的列中获取行。示例如下:
My Table的列标题由|分隔如下所示。只需键入多行
p1.abc.1 | p1.dce.2 | p1.efg.2 | p2.abc.2 | p2.dce.2 | p2.qar.3 |
我的清单如下 list_1 =(' abc',' def',' efg')
返回与列表中的字符串部分匹配的所有列。
例如: 输出应返回以下列中的所有行
p1.abc.1 | p1.dce.2 | p1.efg.2 | p2.abc.2 | p2.dce.2 |
这里的任何帮助都会有很大的帮助。提前谢谢。
答案 0 :(得分:1)
## simulate the data frame with the given column names
df <- data.frame(p1.abc.1 = rnorm(10),
p1.dce.2 = rnorm(10),
p1.efg.2 = rnorm(10),
p2.abc.2 = rnorm(10),
p2.dce.2 = rnorm(10),
p2.qar.3 = rnorm(10))
## your list
list_1 <- c('abc','def','efg')
## sapply to loop, grep to find the matches
## unique and unlist to get the indeces
z <- unique(unlist(sapply(list_1,function(x) grep( x, names(df)))))
## the desired output
df[,z]