可重复的示例
#Use the Iris data set
library(data.table)
iris
colnames(iris)[3] <- "Petal Length"
iris <- as.data.table(iris)
访问没有空格的列
iris[,Petal.Width]
然而,访问名称包含空格的列不起作用
iris[,Petal Length]
iris[,'Petal Length']
唯一的解决方案似乎是
iris[,iris$'Petal Length']
评论 我是data.table的新手。我知道data.table中有很多怪癖;这是其中之一吗?我会改变我的变量名来摆脱空格,但我不愿意,如果我不需要。我还阅读了之前关于列名称的问题 - 我从最后一个问题更新允许的两年后就明白了 - 这可以在colname没有空格的时候看到。
答案 0 :(得分:14)
按照data.table FAQ第1.1-1.3和2.17点的说明使用with = FALSE
:
iris[ ,'Petal Length', with = FALSE]
并确保阅读优秀的introduction to data.table PDF vignette and the new HTML vignettes。
在这种情况下,对于您所期望的(向量),使用[[
更合适:
iris[['Petal Length']]
或者,您也可以将列名称称为j
中的变量:
iris[, `Petal Length`] # note the backticks.