如何在R中按行检查三列的相等性?


要检查三列按行的相等性,我们可以使用双等号 (==) 和 & 运算符进行逻辑比较。

例如,如果我们有一个名为 df 的数据框,它包含三列,例如 C1、C2 和 C3,并且我们想要检查这三列的相等性,那么我们可以使用以下命令:

df$All_equal<-df$C1==df$C2 & df$C2==df$C3

示例 1

以下代码片段创建了一个示例数据框:

x1<-rpois(20,1)
x2<-rpois(20,1)
x3<-rpois(20,1)
df1<-data.frame(x1,x2,x3)
df1

创建了以下数据框:

   x1 x2 x3
1  4  0  1
2  1  2  1
3  0  3  1
4  0  2  0
5  0  2  3
6  1  1  2
7  1  1  0
8  1  0  0
9  0  0  0
10 0  1  0
11 1  2  4
12 2  1  4
13 0  1  0
14 0  3  1
15 1  0  1
16 0  0  0
17 1  0  1
18 0  1  0
19 0  1  0
20 1  0  1

为了检查 df1 中每一行的所有列的值是否相等,请将以下代码添加到上面的代码片段中:

x1<-rpois(20,1)
x2<-rpois(20,1)
x3<-rpois(20,1)
df1<-data.frame(x1,x2,x3)
df1$All_equal<-df1$x1==df1$x2 & df1$x2==df1$x3
df1

输出

如果您将以上所有代码片段作为一个程序执行,则会生成以下输出:

   x1 x2 x3 All_equal
1  4  0  1  FALSE
2  1  2  1  FALSE
3  0  3  1  FALSE
4  0  2  0  FALSE
5  0  2  3  FALSE
6  1  1  2  FALSE
7  1  1  0  FALSE
8  1  0  0  FALSE
9  0  0  0  TRUE
10 0  1  0  FALSE
11 1  2  4  FALSE
12 2  1  4  FALSE
13 0  1  0  FALSE
14 0  3  1  FALSE
15 1  0  1  FALSE
16 0  0  0  TRUE
17 1  0  1  FALSE
18 0  1  0  FALSE
19 0  1  0  FALSE
20 1  0  1  FALSE

示例 2

以下代码片段创建了一个示例数据框:

y1<-sample(0:1,20,replace=TRUE)
y2<-sample(0:1,20,replace=TRUE)
y3<-sample(0:1,20,replace=TRUE)
df2<-data.frame(y1,y2,y3)
df2

创建了以下数据框:

   y1 y2 y3
1  0  1  0
2  0  1  1
3  1  1  1
4  1  0  0
5  1  1  1
6  0  0  0
7  1  0  0
8  1  1  0
9  1  0  1
10 1  0  1
11 1  1  1
12 0  0  1
13 0  1  0
14 0  1  0
15 0  0  0
16 0  1  1
17 0  0  1
18 1  0  0
19 1  1  0
20 0  0  1

为了检查 df2 中每一行的所有列的值是否相等,请将以下代码添加到上面的代码片段中:

y1<-sample(0:1,20,replace=TRUE)
y2<-sample(0:1,20,replace=TRUE)
y3<-sample(0:1,20,replace=TRUE)
df2<-data.frame(y1,y2,y3)
df2$All_equal<-df2$y1==df2$y2 & df2$y2==df2$y3
df2

输出

如果您将以上所有代码片段作为一个程序执行,则会生成以下输出:

   y1 y2 y3 All_equal
1  0  1  0  FALSE
2  0  1  1  FALSE
3  1  1  1  TRUE
4  1  0  0  FALSE
5  1  1  1  TRUE
6  0  0  0  TRUE
7  1  0  0  FALSE
8  1  1  0  FALSE
9  1  0  1  FALSE
10 1  0  1  FALSE
11 1  1  1  TRUE
12 0  0  1  FALSE
13 0  1  0  FALSE
14 0  1  0  FALSE
15 0  0  0  TRUE
16 0  1  1  FALSE
17 0  0  1  FALSE
18 1  0  0  FALSE
19 1  1  0  FALSE
20 0  0  1  FALSE

更新于:2021年11月12日

2K+ 次查看

开启你的职业生涯

通过完成课程获得认证

开始学习
广告