如果这是重复的,我很抱歉,但我似乎无法找到任何解决方案来解决我的问题。我的问题看起来很简单,但我似乎无法让任何东西给我所需要的输出。
我有一个数据帧,其中所有变量都像这样堆叠:
变量 | Old_Value | 新值 |
---|---|---|
Var1 | A1 | A2 |
Var1 | A3 | A4 |
Var1 | A5 | A6 |
Var2 | B1 | B2 |
Var2 | B3 | B4 |
Var2 | B5 | B6 |
我会这样做:
library(tibble)
library(tidyr)
tibble(
variable = paste0('Var', rep(1:2, each = 3)),
old_value = c(paste0(rep(c('A', 'B'), each = 3), c(1,3,5))),
new_value = c(paste0(rep(c('A', 'B'), each = 3), c(2,4,6))),
) %>%
gather('k', 'v', -1) %>%
unite('tmp', variable, k) %>%
mutate(
tmp2 = rep(1:3, 4)
) %>%
spread(tmp, v) %>%
select(-tmp2)
输出:
# A tibble: 3 x 4
Var1_new_value Var1_old_value Var2_new_value Var2_old_value
<chr> <chr> <chr> <chr>
1 A2 A1 B2 B1
2 A4 A3 B4 B3
3 A6 A5 B6 B5