如何检查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 x5

1 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 y4

1 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

回到顶部