如何比较 r 中的三列(附示例)


您可以使用以下基本语法来比较 R 中三列的值:

 df$all_matching <- df$A == df$B & df$B == df$C

此语法创建一个名为all_matching的新列,如果所有列都有匹配值,则返回TRUE ,否则返回FALSE

以下示例展示了如何在实践中使用此语法。

示例:比较 R 中的三列

假设我们在 R 中有以下包含三列的数据框:

 #create data frame
df <- data. frame (A=c(4, 0, 3, 3, 6, 8, 7, 9, 12),
                 B=c(4, 2, 3, 5, 6, 4, 7, 7, 12),
                 C=c(4, 0, 3, 5, 5, 10, 7, 9, 12))

#view data frame
df

   ABC
1 4 4 4
2 0 2 0
3 3 3 3
4 3 5 5
5 6 6 5
6 8 4 10
7 7 7 7
8 9 7 9
9 12 12 12

我们可以使用以下代码创建一个名为all_matching的新列,如果给定行中所有三列都匹配,则返回TRUE ,如果不匹配,则返回FALSE

 #create new column that checks if values in all three columns match
df$all_matching <- df$A == df$B & df$B == df$C

#view updated data frame
df

   ABC all_matching
1 4 4 4 TRUE
2 0 2 0 FALSE
3 3 3 3 TRUE
4 3 5 5 FALSE
5 6 6 5 FALSE
6 8 4 10 FALSE
7 7 7 7 TRUE
8 9 7 9 FALSE
9 12 12 12 TRUE

名为all_matching的新列指示给定行中三列中的值是否匹配。

例如:

  • 第一行中所有三个值都匹配,因此返回TRUE
  • 第二行中并非所有值都匹配,因此返回FALSE
  • 第三行中所有三个值都匹配,因此返回TRUE

等等。

如果要返回TRUEFALSE以外的值,可以在ifelse()函数中指定这些值。

例如,我们可以使用以下代码,如果所有三列中的值都匹配,则返回“Yes”,否则返回“No”:

 #create new column that checks if values in all three columns match
df$all_matching <- ifelse(df$A == df$B & df$B == df$C, ' Yes ', ' No ')

#view updated data frame
df

   ABC all_matching
1 4 4 4 Yes
2 0 2 0 No
3 3 3 3 Yes
4 3 5 5 No
5 6 6 5 No
6 8 4 10 No
7 7 7 7 Yes
8 9 7 9 No
9 12 12 12 Yes

新列现在返回“Yes”或“No”,而不是TRUEFALSE

其他资源

以下教程解释了如何在 R 中执行其他常见任务:

如何检查R中数据框中是否存在列
如何检查R中的列是否包含字符串
如何根据其他列将列添加到R中的数据框

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注