Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
135 views
in Technique[技术] by (71.8m points)

r - Make columns on the basis of one column


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

Using tidyr :

library(tidyr)

a %>%
  pivot_longer(cols = Yr1:Yr3, names_to = 'Yr') %>%
  pivot_wider(names_from = Typ, values_from = value)

#  name  Yr      One   Two Three  Four
#  <chr> <chr> <dbl> <dbl> <dbl> <dbl>
#1 AFG   Yr1      10    11    12    14
#2 AFG   Yr2       1     2     3     4
#3 AFG   Yr3       8     9    10    11
#4 GER   Yr1      15    17    18    19
#5 GER   Yr2       5     6     7     8
#6 GER   Yr3      12    13    14    15
#7 GFR   Yr1      88     1    39     1
#8 GFR   Yr2       9    10    11    12
#9 GFR   Yr3      16    17    18    19

Using data.table :

dcast(melt(setDT(a), measure.vars = c('Yr1', 'Yr2', 'Yr3')), 
      name+variable~Typ, value.var = 'value')

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...