[英]Compare and join dataframes in R
我有兩個具有大部分相同變量的數據框,我想比較這兩個數據框的情況。 我想創建一個新的 dataframe,其中所有案例在 df1 和 df2 中都相同。
如果兩個數據幀中存在的所有變量值都相同,則假定案例相同。 變量“Age”有一個例外,如果值的最大差異為 1 年,則假設情況相同,而變量“Time”的差異可以接受 1 小時。
ID1 <- c(100, 101, 102, 103)
V1 <- c(1, 1, 2, 1)
V2 <- c(1, 2, 3, 4)
Age <- c(25, 16, 74, 46)
Time <- c("9:30", "13:25", "17:20", "7:45")
X <- c (1, 3, 4, 1)
df1 <- data.frame(ID1, V1, V2, Age, Time, X)
ID2 <- c(250, 251, 252, 253)
V1 <- c(1, 2, 1, 2)
V2 <- c(1, 2, 2, 4)
Age <- c(26, 55, 16, 80)
Time <- c("9:30", "12:00", "12:55", "18:00")
Y <- c (3, 2, 1, 1)
df2 <- data.frame(ID2, V1, V2, Age, Time, Y)
在此示例中,ID1=100 和 ID2=250 相同,並且 ID1=101 和 ID2=252。
我想要一個像這樣的新數據框輸出
請注意,“年齡”和“時間”的值是否取自 df1 或 df2 並不重要。 重要的變量是 X 和 Y。
我希望有人可以幫助我解決這個問題。 提前非常感謝:)
親切的問候菲利普
在基礎 R 中:
df3 <- merge(df1, subset(df2, select = -c(Age, Time)), by = c("V1", "V2"))
df3[,c("ID1", "ID2", "V1", "V2", "Age", "Time", "X", "Y")]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.