[英]combine rows and expand different columns in r
我有一個 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
我想在行具有相同ID
時合並行,但擴展新列,因為具有相同ID
的行在每個變量中具有不同的值。 我希望決賽桌是這樣的:
> 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
r 有什么辦法嗎?
我們可以使用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=".")
-輸出
# 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.