如何检查R数据帧的某些特定列是否等于一列?
如果我们在一个数据帧中有大量数据,并且怀疑某些数据列是重复的,或者它们中的某些等于特定的列,那么我们可以使用基数R中的sapply函数来找出它。这样,我们可以删除重复的列,这些重复的列并不能帮助我们的数据分析目标。
例1
请看以下数据帧:
> set.seed(354)> x1<-rpois(20,5)
> x2<-rpois(20,5)
> x3<-rpois(20,5)
> x4<-rpois(20,5)
> x5<-rpois(20,5)
> df1<-data.frame(x1,x2,x3,x4,x5)
> df1
输出结果
x1 x2 x3 x4 x51 4 5 4 4 6
2 6 4 8 7 5
3 5 6 4 7 6
4 5 2 6 13 3
5 3 4 3 5 2
6 9 10 7 5 3
7 8 5 8 2 8
8 5 1 6 4 3
9 1 3 3 9 6
10 2 9 7 9 6
11 11 5 8 5 6
12 8 3 1 2 10
13 5 8 4 4 6
14 3 5 3 5 4
15 7 11 9 6 8
16 5 2 4 6 4
17 6 3 7 4 3
18 7 5 2 6 2
19 9 3 1 5 4
20 7 5 6 4 6
检查x1和x5列是否为
示例
> all(sapply(list(df1$x5),function(x) x==df1$x1))
输出结果
[1] FALSE
示例
> all(sapply(list(df1$x2,df1$x3),function(x) x==df1$x1))
输出结果
[1] FALSE
示例
> all(sapply(list(df1$x1,df1$x3),function(x) x==df1$x2))
输出结果
[1] FALSE
示例
> all(sapply(list(df1$x1,df1$x2,df1$x3),function(x) x==df1$x5))
输出结果
[1] FALSE
示例
> all(sapply(list(df1$x1,df1$x2,df1$x3),function(x) x==df1$x4))
输出结果
[1] FALSE
例2
> y1<-rep(c(1,2,3,4),5)> y2<-rep(c(1,2,3,4),5)
> y3<-rep(c(1,2,3,4),5)
> y4<-rep(c(1,2,4,5),5)
> df2<-data.frame(y1,y2,y3,y4)
> df2
输出结果
y1 y2 y3 y41 1 1 1 1
2 2 2 2 2
3 3 3 3 4
4 4 4 4 5
5 1 1 1 1
6 2 2 2 2
7 3 3 3 4
8 4 4 4 5
9 1 1 1 1
10 2 2 2 2
11 3 3 3 4
12 4 4 4 5
13 1 1 1 1
14 2 2 2 2
15 3 3 3 4
16 4 4 4 5
17 1 1 1 1
18 2 2 2 2
19 3 3 3 4
20 4 4 4 5
示例
> all(sapply(list(df2$y2, df2$y3),function(x) x==df2$y1))
输出结果
[1] TRUE
示例
> all(sapply(list(y2,y3),function(x) x==df2$y1))
输出结果
[1] TRUE
示例
> all(sapply(list(df2$y3),function(x) x==df2$y2))
输出结果
[1] TRUE
示例
> all(sapply(list(df2$y2,df2$y3),function(x) x==df2$y4))
输出结果
[1] FALSE
以上是 如何检查R数据帧的某些特定列是否等于一列? 的全部内容, 来源链接: utcz.com/z/338031.html