假设我们有以下小标题:
\nset.seed(123)\n\nmightyTibble <- tibble(\n year = 1:10,\n revenue = 1000*rgamma(10,2000,3000),\n cost = 100*rgamma(10,2000,3000),\n items = lapply(1:10, \\(i) runif(rpois(1,6), 10, 20))\n)\n\nmightyTibble\n# A tibble: 10 \xc3\x97 4\n year revenue cost items \n <int> <dbl> <dbl> <list> \n 1 1 658. 67.2 <dbl [2]>\n 2 2 684. 66.8 <dbl [3]>\n 3 3 642. 65.8 <dbl [8]>\n 4 4 668. 68.6 <dbl [8]>\n 5 5 692. 67.9 <dbl [4]>\n 6 6 673. 66.6 <dbl [4]>\n 7 7 648. 65.9 <dbl [5]>\n 8 8 641. 66.3 <dbl [7]>\n 9 9 685. 65.1 <dbl [6]>\n10 10 672. 66.5 <dbl [9]>\nRun Code Online (Sandbox Code Playgroud)\n现在,如何将其整齐地放入长格式中?到目前为止,我尝试了pivot_longer包tidyr,但如果我理解正确的话,它无法处理列表列。
unnest_longer就是您正在寻找的 -
library(tidyr)\nmightyTibble %>% unnest_longer(items)\n\n# A tibble: 56 \xc3\x97 4\n# year revenue cost items\n# <int> <dbl> <dbl> <dbl>\n# 1 1 658. 67.2 14.4\n# 2 1 658. 67.2 18.0\n# 3 2 684. 66.8 15.6\n# 4 2 684. 66.8 12.1\n# 5 2 684. 66.8 11.3\n# 6 3 642. 65.8 19.0\n# 7 3 642. 65.8 13.7\n# 8 3 642. 65.8 16.7\n# 9 3 642. 65.8 10.9\n#10 3 642. 65.8 13.8\n# \xe2\x84\xb9 46 more rows\n\nRun Code Online (Sandbox Code Playgroud)\n