R data.table 连接不等式条件

标签 r data.table subset inequality

我想使用 data.table 包根据多个不等式条件对数据进行子集化。 data.table 手册中的示例展示了如何使用字符变量执行此操作,但不显示数字不等式。我还了解了如何使用子集函数来执行此操作。但我真的很想利用 data.table 二进制搜索速度。下面是我正在尝试做的事情的示例。

library(data.table)

data <- data.table(X=seq(-5,5,1), Y=seq(-5,5,1), Z=seq(-5,5,1))
data

setkey(data, X, Y, Z)

#the data.frame way
data[X > 0 & Y > 0 & Z > 0]

#the data.table way (does not work as I expected)
data[J(>0, >0, >0)]

最佳答案

使用 dplyr 包,该解决方案非常快速且简单。

install.packages(dplyr)
library(dplyr)

newdata <- filter(data, X > 0 , Y > 0 , Z > 0)

dplyr 被证明是管理数据帧最简单、最快的软件包之一。在这里查看这个很棒的教程:http://cran.rstudio.com/web/packages/dplyr/vignettes/introduction.html

RStudio 团队还制作了一份不错的备忘单,此处:http://www.rstudio.com/resources/cheatsheets/

关于R data.table 连接不等式条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19053177/

相关文章:

r - data.table 的 fread() 给出不需要的下载消息

r - ‘seewave’安装错误 “' sndfile.h’文件未找到”(适用于 OSX Yosemite 下的 R 3.2.0)

r - 如何计算 R 中列表的笛卡尔幂

r - 如何从 Shiny 中的 plotly 事件中获取方面数据

r - 根据条件创建累积每周平均值的 Date.table 解决方案

r - Data.table 分配子集 dt[, x[.N] := z, y]

dataframe - Julia - 选择以另一个数据帧中的列为条件的数据帧的子集

r - j 环境中使用函数进行列选择

r - tag$head : object of type 'closure' is not subsettable 中的错误

r - R中的子集数据框