A:检查一个数据帧的行是否存在于另一个数据帧中


您可以使用以下语法向 R 中的数据框中添加新列,以指示每一行是否存在于另一个数据框中:

 df1$exists <- do. call (paste0, df1) %in% do. call (paste0, df2)

此特定语法将名为exit的列添加到名为df1的数据帧中,其中包含TRUEFALSE ,以指示df1中的每一行是否存在于另一个名为df2的数据帧中。

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

示例:检查一个数据帧中的行是否存在于 R 的另一个数据帧中

假设我们在 R 中有以下两个数据框:

 #create first data frame
df1 <- data. frame (team=c('A', 'B', 'C', 'D', 'E'),
                  dots=c(12, 15, 22, 29, 24))

#view first data frame
df1

  team points
1 to 12
2 B 15
3 C 22
4 D 29
5 E 24

#create second data frame
df2 <- data. frame (team=c('A', 'D', 'F', 'G', 'H'),
                  dots=c(12, 29, 15, 19, 10))

#view second data frame
df2

  team points
1 to 12
2 D 29
3 F 15
4 G 19
5:10 a.m.

我们可以使用以下语法将名为“ exists”的列添加到第一个数据框中,以指示第二个数据框中的每一行是否存在:

 #add new column to df1 that shows if row exists in df2
df1$exists <- do. call (paste0, df1) %in% do. call (paste0, df2)

#view updated data frame
df1

  team points exists
1 TO 12 TRUE
2 B 15 FALSE
3 C 22 FALSE
4 D 29 TRUE
5 E 24 FALSE

新列存在指示第一个数据帧中的每一行是否存在于第二个数据帧中。

从结果我们可以看出:

  • df1的第一行存在于df2中。
  • df1的第二行在df2中不存在。
  • df1的第三行在df2中不存在。

等等。

请注意,您还可以使用is.numeric()在现有列中显示10 ,而不是TRUEFALSE

 #add new column to df1 that shows if row exists in df2
df1$exists <- as. numeric (do. call (paste0, df1) %in% do. call (paste0, df2))

#view updated data frame
df1

  team points exists
1 to 12 1
2 B 15 0
3 C 22 0
4 D 29 1
5 E 24 0

1表示第一个数据块中的行存在于第二个数据块中。

相反,值为0表示第一个数据帧中的行在第二个数据帧中不存在。

其他资源

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

A:如何检查多列是否相等
A:如何在数据框中选择单行
A:如何复制数据框中的行

添加评论

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