好吧也许我正在测试整个 no-stupid-question 哲学的界限,但有人可以直接指出如何将数据表的列子集化为另一个数据表
所以,让我说我在下面创建了这个数据表,我想要一个新的数据表,其中只有两列中有两列。
example <- data.table(c("Bob","May","Sue","Bob","Sue","Bob"),
c("A","A","A","A","B","B"),
as.Date(c("2010/01/01", "2010/01/01", "2010/01/01",
"2012/01/01", "2012/01/11", "2014/01/01")))
我试图理解datatable-faq(http://cran.r-project.org/web/packages/data.table/vignettes/datatable-faq.pdf)中的1.3和1.4节,因为我的结果是新数据表,而不是字符向量。根据常见问题解答,这是通过使用DT [,。()]来完成的,但是我尝试了这个产量:
example[,.(V2,V3)]
Error in eval(expr, envir, enclos) : could not find function "."
如果我猜测,它看起来像某种版本问题,但我已经获得了最新版本的R,并且常见问题解答在一周前更新了。
出于好奇和旁注,任何人都知道为什么子设置数据表的默认结果不是另一个数据表?我是R的新手(很明显),但对于一个编程人员来说,这似乎非常像是为了让自己变得迟钝。
答案 0 :(得分:3)
您是否已安装并加载了最新版本的data.table
软件包?
install.packages('data.table')
require(data.table)
example <- data.table(c("Bob","May","Sue","Bob","Sue","Bob"),
c("A","A","A","A","B","B"),
as.Date(c("2010/01/01", "2010/01/01", "2010/01/01",
"2012/01/01", "2012/01/11", "2014/01/01")))
example[,.(V2,V3)]
# V2 V3
#1: A 2010-01-01
#2: A 2010-01-01
#3: A 2010-01-01
#4: A 2012-01-01
#5: B 2012-01-11
#6: B 2014-01-01
我最近与CRAN最新的一个,所以我想你可能只有一个旧版本的表。见阿伦的评论。