我正在R中编码,在重塑我的数据模型方面有一个小小的问题。这就是我的数据表类似于:
data sample
name job company number
John Product Manager Google 1
Sam software developer Microsoft 1
Sam Product Manager Microsoft 2
Matt hr director Chevron 1
Cassy Head of Investments Apple 1
Cassy CEO JP Morgan 2
Cassy CFO Amazon 3这就是我试图使我的数据看起来像:
name job_1 company_1 job_2 company_2 job_3 company_3
John Product Manager Google
Sam software developer Microsoft Product Manager Microsoft
Matt hr director Chevron
Cassy Head of Investments Apple CEO JP Morgan CFO Amazon
Cassy CFO Amazon 我尝试使用spread(),但是它不允许我在value =节中添加更多变量,而且不能将值连接到字符串中并使用sep(),因为实际的数据文件需要几天时间才能运行。有办法这样做吗?
发布于 2020-06-24 03:29:52
spread已被pivot_wider所取代,您可以在其中传递多个值列。
tidyr::pivot_wider(df, names_from = number, values_from = c(job, company))
# A tibble: 4 x 7
# name job_1 job_2 job_3 company_1 company_2 company_3
# <chr> <chr> <chr> <chr> <chr> <chr> <chr>
#1 John Product_Manager NA NA Google NA NA
#2 Sam software_developer Product_Manager NA Microsoft Microsoft NA
#3 Matt hr_director NA NA Chevron NA NA
#4 Cassy Head_of_Investments CEO CFO Apple JP_Morgan Amazon 您还可以使用data.table dcast。
library(data.table)
dcast(setDT(df), name~number, value.var = c("job", "company"))https://stackoverflow.com/questions/62547064
复制相似问题