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