【发布时间】:2020-11-11 22:09:49
【问题描述】:
我目前有一个长格式的字符串模式数据框(如下),但我需要宽格式。
df <- structure(list(lep = c("ef", "efe", "efef", "efefe", "efefef",
"efefefe", "efefefef", "efefefefe", "efefefefef", "efefefefefef",
"eg"), char_n = c(2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 12L, 2L
), char_1 = c("e", "e", "e", "e", "e", "e", "e", "e", "e", "e",
"e")), row.names = c(NA, -11L), class = c("tbl_df", "tbl", "data.frame"
))
# A tibble: 11 x 3
lep char_n char_1
<chr> <int> <chr>
1 ef 2 e
2 efe 3 e
3 efef 4 e
4 efefe 5 e
5 efefef 6 e
6 efefefe 7 e
7 efefefef 8 e
8 efefefefe 9 e
9 efefefefef 10 e
10 efefefefefef 12 e
11 eg 2 e
这是我想要的输出
# A tibble: 2 x 11
char_1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x12
<chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
1 e ef efe efef efefe efefef efefefe efefefef efefefefe efefefefef efefefefefef
2 e eg NA NA NA NA NA NA NA NA NA
但是使用以下我只能得到以下输出:
df %>%
mutate(row = row_number()) %>%
pivot_wider(names_from = char_n, values_from=lep) %>% select(-row) %>%
janitor::clean_names(.)
# A tibble: 11 x 11
char_1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x12
<chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
1 e ef NA NA NA NA NA NA NA NA NA
2 e NA efe NA NA NA NA NA NA NA NA
3 e NA NA efef NA NA NA NA NA NA NA
4 e NA NA NA efefe NA NA NA NA NA NA
5 e NA NA NA NA efefef NA NA NA NA NA
6 e NA NA NA NA NA efefefe NA NA NA NA
7 e NA NA NA NA NA NA efefefef NA NA NA
8 e NA NA NA NA NA NA NA efefefefe NA NA
9 e NA NA NA NA NA NA NA NA efefefefef NA
10 e NA NA NA NA NA NA NA NA NA efefefefefef
11 e eg NA NA NA NA NA NA NA NA NA
我不确定是更改我更改为更广泛格式的方式还是之后的步骤应该不同?
任何帮助将不胜感激!
【问题讨论】: