我有一个数据集,每个观察单元都有一列男性和女性。数据集看起来像这样。
国家 | ||
---|---|---|
A | 1 | 2|
B | 4 | 3 |
我们可以使用pivot_longer
library(dplyr)
library(tidyr)
df %>%
pivot_longer(cols = -Country, names_to = c('Gender', '.value'),
names_sep = '_')
-输出
# A tibble: 4 x 3
# Country Gender value
# <chr> <chr> <dbl>
#1 A Male 1
#2 A Female 2
#3 B Male 4
#4 B Female 3
您也可以使用它,但它在某种程度上与已经发布的类似:
df %>%
pivot_longer(- Country, names_to = "Gender", values_to = "value") %>%
mutate(Gender = str_to_title(Gender),
Gender = str_remove(Gender, "_value"))
# A tibble: 4 x 3
Country Gender value
<chr> <chr> <dbl>
1 A Male 1
2 A Female 2
3 B Male 4
4 B Female 3