R中两个数据帧的列比较

问题描述 投票:0回答:1

正如我刚开始用R进行编码一样,有人可以帮忙吗? :)

[如何检查dataframe2的Column2中的值不存在于dataframe2的Column1中的值通过使用摘要,汇总,lapply,sapply,表或循环来进行检查?

另外,计算Column1(df2)中不存在的Column2(df1)的值。 (我可以使用sum()/ count()函数,这取决于我们如何分别比较两个不同数据帧的列。

Click here to view the dataframes!

预期输出:ķ总计:1

r loops dataframe comparison sapply
1个回答
0
投票

您可以将符号%in%直接与它们进行比较(以比较df2的第1列中df1的第2列元素)与!组合以获得相反的结果(第2列的元素)的df1不在df2的第1列中)。

使用table将允许获取找到的每个元素的计数:

df1 <- data.frame(Col2 = c("B","K","Q"), stringsAsFactors = FALSE)
df2 <- data.frame(Col1 = c("A","B","Q","D"), stringsAsFactors = FALSE)


table(df1$Col2[!(df1$Col2 %in% df2$Col1)])

K 
1 

使用dplyr,您可以做:

library(dplyr)
df1 %>% filter(!(Col2 %in% df2$Col1)) %>% mutate(Count = n())

  Col2 Count
1    K     1
© www.soinside.com 2019 - 2024. All rights reserved.