我有一个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")
}
答案 0 :(得分:0)
在column
的{{1}}段中,无法访问带有variable/character
的{{1}}个名称。相反,您可以选择使用i
。
一个人可以将data.table
写为:
get