从文本文件中读取包含特定单词的列

时间:2019-08-12 12:00:11

标签: r data.table

我想知道如何选择标题中包含单词的列

我有一个像这样的文件,我想获取包含单词param1,param2的列。

fileV1.txt
v1.param1 v1.param2 other.param
value       value      value

fileV2.txt
v2.param1 v2.param2 otherParam
value       value      value

#selectCol <- c("param1", "param2")
#dt.v1   <- data.table::fread(path.v1, select = selectCol, fill = T, header = T)
#dt.v2   <- data.table::fread(path.v2, select = selectCol, fill = T, header = T)

2 个答案:

答案 0 :(得分:0)

您可以使用

library(dplyr)
select(DT, matches("param[0-9]+"))

您必须用数据框/表的名称替换DT

示例

DT = data.table(v2.param1= 1, v2.param2= 2, otherParam= 3)

select(DT, matches("param[0-9]+"))
       v2.param1 v2.param2
1:         1         2

编辑

如果我理解您的评论,那么您只想从文件中加载列V2.param1V2.param2。在这种情况下,您的代码想法对我有用:

library(data.table)
DT = data.table(v2.param1= 1, v2.param2= 2, otherParam= 3)
write.csv(DT, file = "MyData.csv")
selectCol <- c("v2.param1", "v2.param2")
fread(paste0(getwd(), "/MyData.csv"), select= selectCol, fill = T, header = T)

答案 1 :(得分:0)

这有效:

library(dplyr)

selectCol <- c("param1", "param2")

dt.v1 <- data.table::fread(path.v1) %>%
  select(matches(paste(selectCol, collapse = "|")))