A:检查一个数据帧的行是否存在于另一个数据帧中
您可以使用以下语法向 R 中的数据框中添加新列,以指示每一行是否存在于另一个数据框中:
df1$exists <- do. call (paste0, df1) %in% do. call (paste0, df2)
此特定语法将名为exit的列添加到名为df1的数据帧中,其中包含TRUE或FALSE ,以指示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()在现有列中显示1和0 ,而不是TRUE或FALSE :
#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 中执行其他常见任务: