簡體   English   中英

在 R 中比較和連接數據幀

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM