首页 > 解决方案 > 宽到长格式,多列到一列

问题描述

dataframe <- data.frame(
  x1 = c("apple", "orange", "banana", "strawberry"),
  y = c("a", "d", "b", "c"),
  z = c(4:1), x2 = c("avocado", "kiwi", "fig", "grape"), 
  x3 = c("lime", "apple", "banana", "kiwi"))

亲爱的,如何将此数据框创建为长格式,其中所有 x1、x2 和 x3 合并如下:

y x
a apple
a avocado
a lime
b orange
b kiwi
b apple

标签: rdataframeformatreshape

解决方案


我不确定y您示例中的 s 是否正确对齐,但您可以通过快速旋转来做到这一点

dataframe %>%
      pivot_longer(cols = contains("x"), values_to = 'x') %>%
      select(y, x)

推荐阅读