[英]combine rows and expand different columns in r
I have a dataframe:我有一个 dataframe:
df1<-data.frame(ID=c(1,2,2,3,3,3,4),
V1=c(1,2,3,4,5,6,7),
V2=c(8,9,10,11,12,13,14),
V3=c(15,16,17,18,19,20,21))
> df1
ID V1 V2 V3
1 1 1 8 15
2 2 2 9 16
3 2 3 10 17
4 3 4 11 18
5 3 5 12 19
6 3 6 13 20
7 4 7 14 21
I would like to combine rows when the rows have the same ID
, but expand new columns because the rows with same ID
have differnet values in each of the variable.我想在行具有相同
ID
时合并行,但扩展新列,因为具有相同ID
的行在每个变量中具有不同的值。 I would like the final table to be like:我希望决赛桌是这样的:
> df1
ID V1.1 V1.2 V1.3 V2.1 V2.2 V2.3 V3.1 V3.2 V3.3
1 1 1 NA NA 8 NA NA 15 NA NA
2 2 2 3 NA 9 10 NA 16 17 NA
3 3 4 5 6 11 12 13 18 19 20
4 4 7 NA NA 14 NA NA 21 NA NA
Is there any way to do that in r? r 有什么办法吗?
We can use pivot_wider
我们可以使用
pivot_wider
library(dplyr)
library(tidyr)
library(data.table)
df1 %>%
mutate(nm1 = rowid(ID)) %>%
pivot_wider(names_from = nm1, values_from = c(V1, V2, V3), names_sep=".")
-output -输出
# A tibble: 4 x 10
# ID V1.1 V1.2 V1.3 V2.1 V2.2 V2.3 V3.1 V3.2 V3.3
# <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#1 1 1 NA NA 8 NA NA 15 NA NA
#2 2 2 3 NA 9 10 NA 16 17 NA
#3 3 4 5 6 11 12 13 18 19 20
#4 4 7 NA NA 14 NA NA 21 NA NA
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.