在 R 中将列表作为长格式的列的 tibble?

Aku*_*äki 2 r dplyr tibble

假设我们有以下小标题:

\n
set.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]>\n
Run Code Online (Sandbox Code Playgroud)\n

现在,如何将其整齐地放入长格式中?到目前为止,我尝试了pivot_longertidyr,但如果我理解正确的话,它无法处理列表列。

\n

Ron*_*hah 6

unnest_longer就是您正在寻找的 -

\n
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\n
Run Code Online (Sandbox Code Playgroud)\n