如何根据R数据帧中列的值范围选择行?
数据的提取或选择可以通过多种方式完成,例如基于单个值,值的范围等。当我们想要比较数据集的子集或使用子集进行分析时,这是最需要的。基于值范围的行选择也可以进行测试。我们可以通过子集函数来做到这一点。
示例
请看以下数据帧-
> 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