如何根据 R 数据框中某一列的取值范围选择行?
r programmingserver side programmingprogramming更新于 2025/6/27 5:52:17
数据的提取或选择可以通过多种方式完成,例如基于单个值、取值范围等。这在我们想要比较数据集的子集或使用子集进行分析时最为常见。基于取值范围的行选择也可用于测试。我们可以通过 subset 函数来实现。
示例
考虑以下数据框 −
> x1<-rpois(20,2) > x2<-rpois(20,5) > x3<-rpois(20,10) > df<-data.frame(x1,x2,x3) > df
输出
x1 x2 x3 1 3 2 6 2 3 4 9 3 4 4 12 4 4 8 12 5 3 5 11 6 2 1 9 7 3 5 8 8 1 5 12 9 1 4 5 10 3 3 5 11 2 6 15 12 0 2 5 13 2 6 12 14 2 4 16 15 0 8 14 16 4 1 5 17 1 7 12 18 3 5 9 19 1 6 3 20 0 3 4
> subset(df,df$x1>0 & df$x1<4)
输出
x1 x2 x3 1 3 2 6 2 3 4 9 5 3 5 11 6 2 1 9 7 3 5 8 8 1 5 12 9 1 4 5 10 3 3 5 11 2 6 15 13 2 6 12 14 2 4 16 17 1 7 12 18 3 5 9 19 1 6 3
> subset(df,df$x1>=1 & df$x1<4)
输出
x1 x2 x3 1 3 2 6 2 3 4 9 5 3 5 11 6 2 1 9 7 3 5 8 8 1 5 12 9 1 4 5 10 3 3 5 11 2 6 15 13 2 6 12 14 2 4 16 17 1 7 12 18 3 5 9 19 1 6 3
> subset(df,df$x1>=1 & df$x1<3)
输出
x1 x2 x3 6 2 1 9 8 1 5 12 9 1 4 5 11 2 6 15 13 2 6 12 14 2 4 16 17 1 7 12 19 1 6 3
> subset(df,df$x1>2 & df$x1<=3)
输出
x1 x2 x3 1 3 2 6 2 3 4 9 5 3 5 11 7 3 5 8 10 3 3 5 18 3 5 9
> subset(df,df$x2>2 & df$x2<6)
输出
x1 x2 x3 2 3 4 9 3 4 4 12 5 3 5 11 7 3 5 8 8 1 5 12 9 1 4 5 10 3 3 5 14 2 4 16 18 3 5 9 20 0 3 4
> subset(df,df$x3>2 & df$x3<11)
输出
x1 x2 x3 1 3 2 6 2 3 4 9 6 2 1 9 7 3 5 8 9 1 4 5 10 3 3 5 12 0 2 5 16 4 1 5 18 3 5 9 19 1 6 3 20 0 3 4