如何在 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
示例 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
廣告