我正在尝试将我的数据重新建模为以下内容(从左到右):

以下是可重复的初始数据:
df <- data.frame(tag=c("tech","tech","tech","tech","distribution","fooddrinks","industry","conseil","tech","tech","conseil","fooddrinks","tech","conseil","conseil","conseil","conseil"),
company_name=c("360Learning","365Talents","3DS OUTSCALE","4D SAS","77 Foods","77 Foods","77 Foods","8pourcent","8SEC","Compte Pour Moi","Compte Pour Moi","AB InBev Europe","AB Tasty","AB Tasty","ABBD","Abbeal","ABC arbitrage"),
company_link=c("/fr/companies/360learning", "/fr/companies/365talents", "/fr/companies/3dsoutscale", "/fr/companies/4d", "/fr/companies/77-foods", "/fr/companies/77-foods", "/fr/companies/77-foods", "/fr/companies/8pourcent", "/fr/companies/8sec", "/fr/companies/ca-compte-pour-moi", "/fr/companies/ca-compte-pour-moi", "/fr/companies/abinbev",
"/fr/companies/ab-tasty", "/fr/companies/ab-tasty", "/fr/companies/abbd", "/fr/companies/abbeal", "/fr/companies/abc-arbitrage"))我尝试过以下函数:stats::reshape、data.table::dcast、tidyr::spread,但我无法找到正确的使用方法,也不知道它们是否是正确的。
发布于 2020-11-18 17:02:25
您并没有真正尝试重新设计(这将根据行的内容添加列),在这里,您只想为每个summarize添加tag值。因此,使用dplyr可以很容易地做到这一点。
library(dplyr)
df %>%
group_by(company_name, company_link) %>%
summarize(tag = paste(tag, collapse = ", "))发布于 2020-11-20 06:20:23
在使用data.table时,您还可以按照以下方式解决问题:
library(data.table)
setDT(df)[, .(tag = toString(tag), company_link = company_link[1]), by = company_name]
# company_name tag company_link
# 1: 360Learning tech /fr/companies/360learning
# 2: 365Talents tech /fr/companies/365talents
# 3: 3DS OUTSCALE tech /fr/companies/3dsoutscale
# 4: 4D SAS tech /fr/companies/4d
# 5: 77 Foods distribution, fooddrinks, industry /fr/companies/77-foods
# 6: 8pourcent conseil /fr/companies/8pourcent
# 7: 8SEC tech /fr/companies/8sec
# 8: Compte Pour Moi tech, conseil /fr/companies/ca-compte-pour-moi
# 9: AB InBev Europe fooddrinks /fr/companies/abinbev
# 10: AB Tasty tech, conseil /fr/companies/ab-tasty
# 11: ABBD conseil /fr/companies/abbd
# 12: Abbeal conseil /fr/companies/abbeal
# 13: ABC arbitrage conseil /fr/companies/abc-arbitragehttps://stackoverflow.com/questions/64897636
复制相似问题