在多个数据集中查找组合
Find combinations in multiple data sets
我目前正在处理一个项目,我有多个 CSV 文件需要通过匹配他们的客户 ID 来匹配人们参加的所有活动组合。他们参加过很多活动。我需要在用逗号分隔的新列中匹配的事件。有多个数据集需要比较。 excel 中的 Vlookup 由于数据量大而冻结。我怎样才能在 R 中做到这一点?我已经安装了 tidyverse。有什么建议吗?
List 1 (one CSV file) List 2 (second CSV file)
LastName FirstName CustID Event LastName FirstName CustID Event
Robson Jonson 23019 NP5 Robson Jonson 23019 GRT2
Robson Jonson 23019 RTE3
Result Needed
LastName FirstName CustID Matched Events
Rob Jonson 23019 NPS, GRT2, RTE3
您的数据集结构相同,因此它们可以按行组合 rbind
:
lst1 <- read.table(header=TRUE, stringsAsFactors=FALSE, text='
LastName FirstName CustID Event
Robson Jonson 23019 NP5
Robson Jonson 23019 RTE3')
lst2 <- read.table(header=TRUE, stringsAsFactors=FALSE, text='
LastName FirstName CustID Event
Robson Jonson 23019 GRT2')
lst <- rbind(lst1, lst2)
那么你需要一个聚合:
aggregate(lst$Event,
list(LastName = lst$LastName, FirstName = lst$FirstName, CustID = lst$CustID),
paste, collapse=", ")
# LastName FirstName CustID x
# 1 Robson Jonson 23019 NP5, RTE3, GRT2
我目前正在处理一个项目,我有多个 CSV 文件需要通过匹配他们的客户 ID 来匹配人们参加的所有活动组合。他们参加过很多活动。我需要在用逗号分隔的新列中匹配的事件。有多个数据集需要比较。 excel 中的 Vlookup 由于数据量大而冻结。我怎样才能在 R 中做到这一点?我已经安装了 tidyverse。有什么建议吗?
List 1 (one CSV file) List 2 (second CSV file)
LastName FirstName CustID Event LastName FirstName CustID Event
Robson Jonson 23019 NP5 Robson Jonson 23019 GRT2
Robson Jonson 23019 RTE3
Result Needed
LastName FirstName CustID Matched Events
Rob Jonson 23019 NPS, GRT2, RTE3
您的数据集结构相同,因此它们可以按行组合 rbind
:
lst1 <- read.table(header=TRUE, stringsAsFactors=FALSE, text='
LastName FirstName CustID Event
Robson Jonson 23019 NP5
Robson Jonson 23019 RTE3')
lst2 <- read.table(header=TRUE, stringsAsFactors=FALSE, text='
LastName FirstName CustID Event
Robson Jonson 23019 GRT2')
lst <- rbind(lst1, lst2)
那么你需要一个聚合:
aggregate(lst$Event,
list(LastName = lst$LastName, FirstName = lst$FirstName, CustID = lst$CustID),
paste, collapse=", ")
# LastName FirstName CustID x
# 1 Robson Jonson 23019 NP5, RTE3, GRT2