如何在 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

更新于: 2021年3月6日

3K+ 次浏览

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告