此问题在此处已有答案:
How to reshape data from long to wide format(14个答案)
8天前关闭。
我在一个数据框中有数据,其中包含不同ID的多个年份的值。当前,它显示如下:
(can使用以下代码重新创建):
df<-data.frame(WLH_ID=c("15-7318","15-7318","15-7319","15-7319","15-7320","15-7320","15-7320"),
year=c("2017","2018","2017","2018","2017","2018","2019"),
overlap_95=c("1","1","0.626311190934023","0.968386735773874","0.713286882088087","0.824103998854928","0.451493099154607"))
我希望将其重新塑造为如下所示:
实际上,我希望从行中提取值,以便每年都在自己的列中-但如果有意义,请将数据与ID保持在同一行中,以便我可以在各年之间比较每个ID
一些ID可能比其他ID拥有更多年的数据,在这种情况下,我希望将额外的年表示为NA或NULL。
我想这是可以做到的--只是不知道从哪里开始。我也找不到这个问题已经回答过了,但我可能措辞错误。
先谢了!
2条答案
按热度按时间x8goxv8g1#
我想也许你只需要
dplyr::pivot_wider()
?bkhjykvo2#
一种方法是使用
pivot_wider()
,在rename()
之后使用列,最后使用replace()
将缺失值替换为blank
单元格:dfw
应如下所示: