[英]R dplyr pivot (rankings table) - new column with unique row values from multiple columns, then assign row values from another column
假设我们有以下内容
tibble (
rank = c(1, 2, 3),
race_A = c("John", "Nick", "George"),
race_B = c("Jay", "Nick", "John"),
race_C = c("Jay", "Jack", "Robbie")
)
产生这个tibble
# A tibble: 3 × 4
rank race_A race_B race_C
<dbl> <chr> <chr> <chr>
1 1 John Jay Jay
2 2 Nick Nick Jack
3 3 George John Robbie
我如何将其转换为以下内容
# A tibble: 3 × 4
racer race_A race_B race_C
<dbl> <chr> <chr> <chr>
1 John 1 3 NA
2 Nick 2 2 NA
3 George 3 NA NA
4 Jay NA 1 1
5 John NA 3 NA
6 Jack NA NA 2
7 Robbie NA NA 3
df %>%
pivot_longer(-rank) %>%
pivot_wider(names_from = name,
values_from = rank) %>%
arrange(race_A)
# A tibble: 6 × 4
value race_A race_B race_C
<chr> <dbl> <dbl> <dbl>
1 John 1 3 NA
2 Nick 2 2 NA
3 George 3 NA NA
4 Jay NA 1 1
5 Jack NA NA 2
6 Robbie NA NA 3
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.