从宽到长格式,多列到一列
Wide to long format with multiple colums to one column
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
library(tidyverse)
dataframe |>
select(-z) |>
pivot_longer(-y) |>
select(-name)
#> # A tibble: 12 × 2
#> y value
#> <chr> <chr>
#> 1 a apple
#> 2 a avocado
#> 3 a lime
#> 4 d orange
#> 5 d kiwi
#> 6 d apple
#> 7 b banana
#> 8 b fig
#> 9 b banana
#> 10 c strawberry
#> 11 c grape
#> 12 c kiwi
我不确定您示例中的 y
是否正确对齐,但您可以通过快速旋转来做到这一点
dataframe %>%
pivot_longer(cols = contains("x"), values_to = 'x') %>%
select(y, x)
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
library(tidyverse)
dataframe |>
select(-z) |>
pivot_longer(-y) |>
select(-name)
#> # A tibble: 12 × 2
#> y value
#> <chr> <chr>
#> 1 a apple
#> 2 a avocado
#> 3 a lime
#> 4 d orange
#> 5 d kiwi
#> 6 d apple
#> 7 b banana
#> 8 b fig
#> 9 b banana
#> 10 c strawberry
#> 11 c grape
#> 12 c kiwi
我不确定您示例中的 y
是否正确对齐,但您可以通过快速旋转来做到这一点
dataframe %>%
pivot_longer(cols = contains("x"), values_to = 'x') %>%
select(y, x)