我正在尝试学习data.table
,但是立即被提议的子集所困惑。我正在使用以下示例数据中的一个曲面晕影(https://cran.r-project.org/web/packages/data.table/vignettes/datatable-intro.pdf):
grpsize = ceiling(1e7/26^2)
DF <- data.frame(
x=rep(LETTERS,each=26*grpsize),
y=rep(letters,each=grpsize),
v=runif(grpsize*26^2),
stringsAsFactors=FALSE)
setDT(DF)
如果我希望满足以下条件,那么最好的方法是对此数据集进行子集化:x = "B"
,y = "c"
和v > 0
?
为前两个条件提出的小插图:
setkey(DF, x, y)
DF[.("B","c")]
我知道这实际上正在加入。
但是我怎样才能为此添加第三个条件?我很清楚我可以完成整个事情,因为我会用正常的data.frame
来做。但引用小插图:
我们也可以在data.table中进行矢量扫描。换句话说,我们可以使用 data.table严重。