子集列在data.frame上起作用,但在data.table上不起作用
我可以从子集列在data.frame上起作用,但在data.table上不起作用,r,data.table,multiple-columns,subset,R,Data.table,Multiple Columns,Subset,我可以从数据框中选择几列: > z[c("events","users")] events users 1 26246016 201816 2 942767 158793 3 29211295 137205 4 30797086 124314 但不是来自数据。表: > best[c("events","users")] Starting binary search ...Error in `[.data.table`(best, c("events", "u
数据框中选择几列
:
> z[c("events","users")]
events users
1 26246016 201816
2 942767 158793
3 29211295 137205
4 30797086 124314
但不是来自数据。表:
> best[c("events","users")]
Starting binary search ...Error in `[.data.table`(best, c("events", "users")) :
typeof x.pixel_id (integer) != typeof i.V1 (character)
Calls: [ -> [.data.table
我该怎么办?
如果您正在查找数据,有没有更好的方法?鉴于您正在查找数据。返回表您应该在调用的j
部分使用list
,而不是c
z[, list(events,users)] # first comma is important
请注意,列名周围不需要引号。考虑到您正在查找数据。表
后面您应该在调用的j
部分使用list
而不是c
z[, list(events,users)] # first comma is important
请注意,列名周围不需要引号。列子集设置应在j
中完成,而不是在i
中完成。改为:
DT[, c("x", "y")]
查看(幻灯片4)了解如何读取数据表
语法(更像SQL)。这将有助于说服您,在j
中提供列更有意义,这相当于SQL中的SELECT。列子集应该在j
中完成,而不是在i
中完成。改为:
DT[, c("x", "y")]
查看(幻灯片4)了解如何读取数据表
语法(更像SQL)。这将有助于说服您,在j
中提供列更有意义,这相当于SQL中的SELECT。列子集应该在j
中完成,而不是在i
中完成DT[,c(“x”,“y”),带=FALSE]
。请看第四张幻灯片@Arun:谢谢-请将评论转换为答案,以便我可以接受。sds,完成。如果合适的话,请随时将我的评论转化为答案,以备将来参考。@sds请同时阅读。前几个常见问题解答涉及到这一点。我将重复我以前说过很多次的话。含蓄是个婊子。就像有时mydf[,1,drop=FALSE
非常方便。列子集设置应该在j
中完成,而不是在i
中DT[,c(“x”,“y”),带=FALSE]
。请看第四张幻灯片@Arun:谢谢-请将评论转换为答案,以便我可以接受。sds,完成了。如果合适,请随时将我的评论转换为答案,以备将来使用。@sds请阅读。前几个常见问题解答包括这一点。我将重复我说过很多次的话。含蓄是一个婊子。只是ike有时mydf[,1,drop=FALSE
非常方便。