如何在 R 中使用值范围对 data.table 对象进行子集选择?
要使用值范围对 data.table 对象进行子集选择,我们可以使用单个方括号并使用 %between% 选择范围。例如,如果我们有一个包含列 x 的 data.table 对象 DT,并且 x 中的值范围从 1 到 10,那么我们可以使用命令 DT[DT$x %between% c(3,8)] 对 3 到 8 之间的值对 DT 进行子集选择。
示例 1
加载 data.table 包并创建 data.table 对象 -
library(data.table) x1<-rnorm(20) x2<-rnorm(20,100,3.25) dt1<-data.table(x1,x2) dt1
输出
x1 x2 1: 0.06546822 102.83348 2: 1.05756760 99.28015 3: 0.09397791 97.36582 4: -0.44478256 96.22510 5: -0.17392089 99.56077 6: 0.32834773 95.85831 7: -0.04563975 104.88298 8: 0.95807930 95.31325 9: 1.25349243 101.72948 10: 0.47676550 96.76459 11: -1.26790256 98.76222 12: -1.36220203 97.91117 13: -1.31999499 102.81730 14: 1.69391374 96.00380 15: -0.10801512 101.69544 16: -1.13463486 108.11833 17: -0.13885823 102.34798 18: -0.54403332 99.68874 19: 0.55865944 97.33505 20: 0.76511431 96.53975
对 dt1 的行进行子集选择,x1 的值为 0.5 到 1 -
dt1[dt1$x1 %between% c(0.5,1)]
x1 x2 1: 0.9580793 95.31325 2: 0.5586594 97.33505 3: 0.7651143 96.53975
Explore our latest online courses and learn new skills at your own pace. Enroll and become a certified expert to boost your career.
示例 2
y1<-rpois(20,5) y2<-rpois(20,2) dt2<-data.table(y1,y2) dt2
输出
y1 y2 1: 7 1 2: 3 2 3: 1 5 4: 4 2 5: 5 3 6: 4 1 7: 3 2 8: 5 0 9: 5 2 10: 7 4 11: 5 4 12: 6 2 13: 6 4 14: 6 2 15: 5 2 16: 1 1 17: 3 1 18: 2 4 19: 4 0 20: 4 1
对 dt1 的行进行子集选择,y2 的值为 2 到 6 -
dt2[dt2$y2 %between% c(2,6)]
y1 y2 1: 3 2 2: 1 5 3: 4 2 4: 5 3 5: 3 2 6: 5 2 7: 7 4 8: 5 4 9: 6 2 10: 6 4 11: 6 2 12: 5 2 13: 2 4
广告