如何比较 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 。
等等。
如果要返回TRUE和FALSE以外的值,可以在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”,而不是TRUE或FALSE 。
其他资源
以下教程解释了如何在 R 中执行其他常见任务: