小编Cri*_*an 的帖子

如何对一组多列进行透视?以及如何从长格式恢复到原始宽格式?

如果我有以下数据:

D = tibble::tribble(
  ~firm, ~ind, ~var1_1, ~var1_2, ~op2_1, ~op2_2,
  "A",     1,     10,     11,     11,     12,
  "A",     2,     12,     13,     13,     14,
  "B",     1,     14,     15,     15,     16,
  "B",     2,     16,     17,     17,     18,
  "C",     1,     18,     19,     19,     20,
  "C",     2,     20,     21,     21,     22,
)
Run Code Online (Sandbox Code Playgroud)

我怎样才能pivot_longer()var1 和 var2 有“_*”作为年份指示符?

我的意思是,我想要这样的东西:

D %>%
  pivot_longer(var1_1:op2_2,
  names_to = c(".value", "year"),
  names_pattern = "(.*)_(.*)",
  values_to = c("var1, var2")
  )
# A tibble: 12 x 5
   firm    ind year   var1  op2 …
Run Code Online (Sandbox Code Playgroud)

r plyr dplyr

3
推荐指数
1
解决办法
6195
查看次数

标签 统计

dplyr ×1

plyr ×1

r ×1