簡體   English   中英

R:在定義列中合並/匹配帶有分號分隔值的數據框

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

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