我有以下清单
\nexample <- list(a = c(1, 2, 3),\n b = c(2, 3),\n c = c(3, 4, 5, 6))\nRun Code Online (Sandbox Code Playgroud)\n我想将其转换为以下小标题
\n# A tibble: 9 \xc3\x97 2\n name value\n <chr> <dbl>\n1 a 1\n2 a 2\n3 a 3\n4 b 2\n5 b 3\n6 c 3\n7 c 4\n8 c 5\n9 c 6\nRun Code Online (Sandbox Code Playgroud)\n我发现了有关此主题的多个 StackOverflow 问题,例如此处、此处或此处,但没有一个问题涉及向量名称不会成为列名称的特殊情况。
\n我设法通过如下所示的良好旧循环实现了预期的结果,但我正在寻找一种更快、更优雅的方法。
\nlibrary(dplyr)\n\nexample_list <- list(a = c(1, 2, 3),\n b = c(2, 3),\n c = c(3, 4, 5, 6))\n\nexample_tibble <- tibble()\n\nfor (i in 1:length(example_list)) {\n example_tibble <- example_tibble %>% \n bind_rows(as_tibble(example_list[[i]]) %>% \n mutate(name = names(example_list)[[i]]))\n}\n\nexample_tibble <- example_tibble %>% \n relocate(name)\nRun Code Online (Sandbox Code Playgroud)\n
尝试stack
> stack(example)
values ind
1 1 a
2 2 a
3 3 a
4 2 b
5 3 b
6 3 c
7 4 c
8 5 c
9 6 c
Run Code Online (Sandbox Code Playgroud)