我正在尝试学习data.table
中的R
包。我有一个名为DT1
的数据表和一个数据帧DF1
,并且我想根据逻辑条件(析取)来对一些实例进行子集化。这是我现在的代码:
DF1[DF1$c1==0 | DF1$c2==1,] #the data.frame way with the data.frame DF1
DT1[DT1$c1==0 | DT1$c2==1,] #the data.frame way with the data.table DT1
在"Introduction to the data.table package in R"的第5页上,作者举了一个类似的示例,但带有一个结合(上面第二行中的
|
替换&
),并指出这是对data.table
包的错误使用。他建议改用这种方式:setkey(DT1,c1,c2)
DT1[J(0,1)]
因此,我的问题是:如何用
data.table
包语法编写析取条件?我的第二行DT1[DT1$c1==0 | DT1$c2==1,]
是否滥用?除了析取之外,是否有与J
等效的代码? 最佳答案
该文档表明您可以使用:
DT1[c1==0 | c2==1, ]