【发布时间】:2015-07-12 06:08:50
【问题描述】:
示例:
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 循环来实现这一点。但是,我想以一种更简单、更快捷的方式来做到这一点。
【问题讨论】:
-
你能显示预期的输出吗?也许
all(do.call(paste, df1) %in% do.call(paste, df2)) -
@akrun 我是 SO 新手,所以不知道我必须接受这个解决方案。接受了。
-
谢谢。我发布了两种可能的解决方案。显示预期的输出可能会更好。另外,行中值的顺序是否重要?
-
@akrun 两个数据框的列顺序相同 - Col1、Col2、Col3 等等。
-
是的,它工作正常。但是,我意识到这不是我想要的。 Dataframe1 和 Dataframe2,没有确切的数据。在此示例中 - 在 Dataframe1 中,第一列中的数据是“Indian Inc.”。而在 Dataframe2 中,它是“印度”。在多个列中都是如此。我想要一个类似的匹配 - 基于 agrepl 的东西。我将把它作为一个新问题发布。
标签: r