提问人:Alex 提问时间:7/11/2016 最后编辑:Alex 更新时间:7/11/2016 访问量:711
data.table 中使用点表示法的子集
Subsetting in data.table using dot notation
问:
我正在尝试学习,但立即被提议的子集弄得一团糟。我正在使用以下示例数据处理其中一个 cran 小插图 (https://cran.r-project.org/web/packages/data.table/vignettes/datatable-intro.pdf):data.table
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 很糟糕。
答: 暂无答案
评论
DF[.("B","c")][v > 0]
DF[DF[.("B","c"), .I[v > 0] ,by = .EACHI]$V1]