有没有一种简单的方法可以将合并的数据帧与具有不同大小的数据帧进行比较

时间:2019-10-31 15:20:58

标签: r dataset data-cleaning

我正在对合并数据帧(A + B)到源数据帧(A和B)的数据进行验证。我合并了A和B df,并希望确保它们正确合并。合并的df包含与源dfs相同的所有变量名。问题是合并的df的大小与源dfs的大小不同。有一个简单的代码可以做到这一点吗?

在excel中,它将执行以下操作:  = IF(Merged_dataframe!A2 = A.xlsx!$ A $ 2,TRUE,结果) 但是对于合并数据集中的所有行,如果它们匹配,我希望它打印出结果为true。

我是R的新手,我不知道从哪里开始,但尝试了以下操作:

 A<-First.df
 B<-Second.df
 A_B <- cbind(A, B)
 A_B == A
 A_B == B

但是问题是A_B的大小不同,因此无法正常工作,因此出现此错误: “ ==”仅适用于大小相等的数据帧

请帮助。

谢谢!

1 个答案:

答案 0 :(得分:0)

您可能要在此处检查data.frame比较:Compare two data.frames to find the rows in data.frame 1 that are not present in data.frame 2

假设您在A和B中的行数相同,则可以全部检查data.frame差异,例如:

# Using toy data set
x <- iris[1:9,] # use AB_df[ , c("the_column_vector_to check")]
y <- iris[8:11,] # use A_df or B_df

# Test for equality
all.equal(x, x) # TRUE if all equal
#> [1] TRUE
all.equal(x, y) # gives the differences
#> [1] "Attributes: < Component \"row.names\": Numeric: lengths (9, 4) differ >" 
#> [2] "Component \"Sepal.Length\": Numeric: lengths (9, 4) differ"              
#> [3] "Component \"Sepal.Width\": Numeric: lengths (9, 4) differ"               
#> [4] "Component \"Petal.Length\": Numeric: lengths (9, 4) differ"              
#> [5] "Component \"Petal.Width\": Numeric: lengths (9, 4) differ"               
#> [6] "Component \"Species\": Lengths: 9, 4"                                    
#> [7] "Component \"Species\": Lengths (9, 4) differ (string compare on first 4)"