R data.table过滤器列,其名称具有空格

时间:2018-07-14 05:07:30

标签: r data.table

我有一个data.table。该列之一称为“高分”。我知道我们可以随时重命名该列。但是,如果我们必须使用引号作为列名,是否有一种方法可以基于列对数据进行子集化?实际上,对于这种类型的列的列表,我需要这样做

我已使用虹膜表制作了以下示例:

library(data.table)

dt <- as.data.table(iris)

# rename to make the variable with space
setnames(dt, c("Sepal.Length", "Sepal.Width",  "Petal.Length", "Petal.Width",  "Species"), 
     c("Sepal Length", "Sepal Width",  "Petal Length", "Petal Width",  "Species")) 

seg_name <- c("Sepal Length", "Sepal Width",  "Petal Length", "Petal Width")

然后,我想基于每一列创建许多子集。但是所有这些列都带有空格或特殊字符

for (i in 1:length(seg_name)){
  # here is the problem !!!
  tmp <- dt[seg_name[i] > 6]
  fwrite(tmp, paste0('./output/', seg_name[i], '.txt'), row.names = F, sep = "\t")
}

1 个答案:

答案 0 :(得分:0)

column的{​​{1}}段中,无法访问带有variable/character的{​​{1}}个名称。相反,您可以选择使用i

一个人可以将data.table写为:

get