[英]R: Merging/Match dataframes with semicolon-seperated values in the defining columns
如果這個問題太容易了,請道歉,但是我仍然是R語言的初學者。我開設了一些入門課程。 我知道基本知識。 我可以很好地閱讀它,但是我仍然發現自己迷失了方向。
這是我的問題:我有兩個數據框,看起來像這樣。
Table1 <- data.frame("Name"=c("aaa","bbb-2; bbb", "ddd", "eee", "fff-2; fff"),
"Values1"= c(2, 0.5, 0.1, 3, 4))
Table2 <- data.frame ("Name"=c("aaa", "ccc", "bbb; ddd", "fff"),
"Values2"= c(5, 2, 1, NA), "Values3"= c(4, NA, 1, NA))
我想通過“名稱”列合並數據幀,但在這些“名稱”列中有一些用分號分隔的條目(例如“ bbb-2; bbb”),而有些則具有一些不必要的附加內容,例如“ -2”。
在表1中,似乎只有那些帶有“ -2”但其他名稱相同的條目才用分號分隔(例如“ bbb-2; bbb”)。 在表2中,用不同的名稱分隔。 (例如“ bbb; ddd”)
如果要用分號分隔的值之一匹配,我想將Table2中的值添加到Table1中。 我想將所有數據保留在表1中。 但並非表2中的所有數據。 如果未通過來自表2的數據來豐富表1,則該值應為“” / NULL,而不是0。
但是,由於統計原因,我想避免通過將條目划分為單獨的行來避免數據重復!
我們可以做一個sub
來刪除那些子串
Table1$Name <- sub("-\\d+", "", Table1$Name)
然后merge
merge(Table1, Table2, by = "Name", all.x = TRUE)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.