比较R中的数据帧

agu*_*muz 3 compare r

我是R和stackoverflow的新手; 对我的问题提出道歉.

我有两个数据帧

data.frame 1:

Product.ID Description Wholesale.Price
Prod1      Desc1       1.45
Prod       Desc2       1.27
Prod3      Desc        3.62
Prod4      Desc4       2.15
Prod5      Desc5       2.87
Prod12     Desc6       2.53
Prod7      Desc7       2.20
Prod8      Desc8       2.60
Prod9      Desc9       3.68
Run Code Online (Sandbox Code Playgroud)

data.frame 2:

Product.ID Description Wholesale.Price
Prod1      Desc1       1.45
Prod2      Desc2       1.27
Prod3      Desc3       3.62
Prod4      Desc4       1.57
Prod5      Desc5       2.87
Prod6      Desc6       2.53
Prod7      Desc7       2.20
Prod8      Desc8       3.21
Prod9      Desc9       1.81
Run Code Online (Sandbox Code Playgroud)

我看到我可以使用merge(list_1,list_2)来打印两个数据帧的所有3列匹配的位置(非常酷).

我试图找到一种方法来打印出基于Product.ID的两个数据框之间的Description和Wholesale.price之间存在差异的地方.我甚至不确定如何以有意义的方式可视化差异.

非常感谢任何帮助.

jer*_*ycg 6

这是一个快速的两个班轮.首先读取@bgoldst的数据:

df1 <- data.frame(Product.ID=c('Prod1','Prod','Prod3','Prod4','Prod5','Prod12','Prod7','Prod8','Prod9'), Description=c('Desc1','Desc2','Desc','Desc4','Desc5','Desc6','Desc7','Desc8','Desc9'), Wholesale.Price=c(1.45,1.27,3.62,2.15,2.87,2.53,2.20,2.60,3.68), stringsAsFactors=F );
df2 <- data.frame(Product.ID=c('Prod1','Prod2','Prod3','Prod4','Prod5','Prod6','Prod7','Prod8','Prod9'), Description=c('Desc1','Desc2','Desc3','Desc4','Desc5','Desc6','Desc7','Desc8','Desc9'), Wholesale.Price=c(1.45,1.27,3.62,1.57,2.87,2.53,2.20,3.21,1.81), stringsAsFactors=F );
Run Code Online (Sandbox Code Playgroud)

现在我们要合并它,但保留所有列:

x <- merge(df1, df2, by = "Product.ID")
Run Code Online (Sandbox Code Playgroud)

现在打印出那些价格或描述不匹配的列:

x[x$Description.x != x$Description.y | x$Wholesale.Price.x != x$Wholesale.Price.y, ]


  Product.ID Description.x Wholesale.Price.x Description.y Wholesale.Price.y
2      Prod3          Desc              3.62         Desc3              3.62
3      Prod4         Desc4              2.15         Desc4              1.57
6      Prod8         Desc8              2.60         Desc8              3.21
7      Prod9         Desc9              3.68         Desc9              1.81
Run Code Online (Sandbox Code Playgroud)