0
要找到差異,我使用了sqldf軟件包。發現R中兩個數據幀之間的差異時,它們僅在行頻率方面有所不同
我有兩個數據幀。它們的區別僅在於第二個數據幀的某些行與第一個數據幀重複多次。也就是說,它們都具有相同的值,僅在頻率方面有所不同。
sqldf似乎沒有顯示它們之間的區別,因爲它看起來像只檢查唯一值。見下文。
我該如何克服這個問題?另外,有沒有其他軟件包可以幫助找出兩幀之間的差異?
col1 = c(1,2,3)
df1 = data.frame(col1)
col1 = c(1,2,3,1,2,3,1,2,3)
df2 = data.frame(col1)
> df1
col1
1 1
2 2
3 3
> df2
col1
1 1
2 2
3 3
4 1
5 2
6 3
7 1
8 2
9 3
sqldf('SELECT * FROM df1 EXCEPT SELECT * FROM df2')
[1] col1
<0 rows> (or 0-length row.names)
sqldf('SELECT * FROM df2 EXCEPT SELECT * FROM df1')
[1] col1
<0 rows> (or 0-length row.names)
我也嘗試了功能如下,但即使這似乎並沒有幫助
dfdiffmyfunc <- function(x.1,x.2,...){
x.1p <- do.call("paste", x.1)
x.2p <- do.call("paste", x.2)
x.1[! x.1p %in% x.2p, ]
}
> dfdiffmyfunc(df1,df2)
numeric(0)
> dfdiffmyfunc(df2,df1)
numeric(0)