r语言 - 通过添加列将多个行中具有相同ID的数据收集到一行中



我正在学习在Windows机器上使用R/Rstudio,但还没有找到解决我问题的方法。我有一个包含数千个观测值和10列(数字、因子和日期)的数据框架。我的第一列中的id经常在不同的行中出现多次。

我想把所有具有相同ID的行的所有值放到一行中。

我试过循环,跨越,合并,聚集,扩散等,但我还没有找到一个方法。

这是我所拥有的数据的一个虚构的例子:

id<-rep(c(1,2,3,4),times=5)
df1<-data.frame(id)
df1$type <- rep(c(22, 50, 49, 33), times = 5) 
df1$begin <- rep(c(2020-05-23, 2020-06-24, 2020-04-18, 2020-09-07), times = 5) 
df1$end <- rep(c(2021-07-23, 2021-04-24, 2021-03-18, 2021-10-07), times = 5)

df1

id类型33491998200050199019933320042004

试试pivot_wider, Lmk.

df1 %>%
group_by(id) %>%
mutate(V = row_number()) %>%
ungroup() %>%
pivot_wider(
id_cols = id,
names_from = V,
values_from =  !c(id, V),
values_fill = NA) 

最新更新