我觉得这是一个非常简单的过程,但我还没有设法做到这一点。我有一个像这样的df:
book_title author
book1 bob
book1 jane
book2 alice
book2 fred
book2 greg
book3 louise
book3 sam
我想把它变成这样:
book_title author_1 author_2 author_3
book1 bob jane NA
book2 alice fred greg
book3 louise sam NA
我知道spread()、pivot_wider()和separate()不会有太大的用处。非常感谢所有的帮助!
1条答案
按热度按时间ymdaylpp1#
我已经包括了三种方法来做到这一点:base R方法(即不使用软件包)、
tidyverse
方法和data.table
解决方案。我通常不会使用base R来重塑wide/long,因为我发现语法有点混乱-尽管在这种情况下它不是太糟糕。在我看来,
tidyverse
语法是最直观的。但是,对于大型数据集,它可能比data.table
慢得多基本R方法
tidyverse方法
数据表方法
下面是一个使用
data.table::dcast
函数的方法:原始数据