簡體   English   中英

在 r 中合並行並展開不同的列

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM