我有兩個具有相同列名的資料框,示例如下。
>dataframe1
Company_name Transaction_Code Sum
1: First 2000 234
2: First 3000 562
3: First 4000 105
4: Second 8888 740
5: Third 9000 325
6: Third 4000 145
7: BBB 1000 28
8: BBB 3535 100
>dataframe2
Company_name Transaction_Code Sum
1: First 2000 340
2: First 3000 620
3: First 4000 050
4: Second 8888 400
5: Third 9000 250
6: Third 4000 450
7: BBB 1000 27
我正在嘗試通過前兩列的值檢查條目,以查看 dataframe2 中缺少 dataframe1 中的哪些條目。如圖所示,資料幀 1 具有資料幀 2 中缺少的條目 #8。我已經看到了 dplyr::anti.join 解決方案,用于具有一個條件/列的此類任務,但是當我需要通過兩列中的值判斷條目時,它似乎不起作用。
PS我沒有包括任何可重復的例子,因為我認為沒有意義。我遠非 R 或通用編碼方面的專家,所以這個問題可能以某種方式缺乏,抱歉。
uj5u.com熱心網友回復:
setdiff() 可能是你要找的:
df1 <- data.frame(company = c("first","first","first","second","third","third","BBB","BBB"),
transac = c(2000,3000,4000,8888,9000,4000,1000,3535),
sum=c(234,562,105,740,325,145,28,100))
df2 <- data.frame(company = c("first","first","first","second","third","third","BBB"),
transac = c(2000,3000,4000,8888,9000,4000,1000),
sum=c(340,620,050,400,250,450,27))
setdiff(df1[,1:2],df2[,1:2])
回傳
company transac
1 BBB 3535
uj5u.com熱心網友回復:
這可以通過anti_join()指定要用于連接的列來完成。
library(dplyr)
library(tibble)
dataframe1 = tribble(
~Company_name, ~Transaction_Code, ~Sum,
"First", 2000, 234,
"First", 3000, 562,
"First", 4000, 105,
"Second", 8888, 740,
"Third", 9000, 325,
"Third", 4000, 145,
"BBB", 1000, 28,
"BBB", 3535, 100
)
dataframe2 = tribble(
~Company_name, ~Transaction_Code, ~Sum,
"First", 2000, 340,
"First", 3000, 620,
"First", 4000, 050,
"Second", 8888, 400,
"Third", 9000, 250,
"Third", 4000, 450,
"BBB", 1000, 27
)
anti_join(dataframe1, dataframe2, by = c("Company_name", "Transaction_Code"))
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/340140.html
上一篇:R-根據同一列中以前的值進行變異
下一篇:每個日歷年花費的時間
