如何在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