示例:
dataframe1具有以下行和列。
+---------+---------+---------+---------+---------+
| Column1 | Column2 | Column3 | Column4 | Column5 |
+---------+---------+---------+---------+---------+
| A | B | C | D | E |
| P | Q | R | S | T |
| J | K | L | M | N |
+---------+---------+---------+---------+---------+
dataframe2具有以下行和列。
+---------+---------+---------+---------+---------+
| Column1 | Column2 | Column3 | Column4 | Column5 |
+---------+---------+---------+---------+---------+
| B | D | E | M | N |
| Q | S | T | R | A |
| M | Q | R | A | T |
| A | B | C | D | E |
+---------+---------+---------+---------+---------+
我想要做的是首先通过迭代和dataframe1检查的第一行dataframe1存在于dataframe2。在这里,在这个例子中,第一行dataframe1的存在所述行dataframe2。以同样的方式,我想检查的所有行dataframe1存在于dataframe2。我可以通过多个for循环来实现。但是,我想以一种更简单,更快捷的方式进行操作。
我们可以paste
将每个数据集(do.call(paste,...)
)中的行进行比较,并使用'df2'中存在的%in%. The output will be a logical vector. If
所有the values from the
粘贴'df1'中的输出进行比较,它将给出'TRUE'或'FALSE
all(do.call(paste, df1) %in% do.call(paste, df2))
另一个选择是anti_join
从dplyr使用。如果在“ df2”中找到了“ df1”中的所有行,则输出将为“ 0”行。
library(dplyr)
nrow(anti_join(df1, df2))==0
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句