crf*_*crf 4 r split-apply-combine dplyr
这是一个愚蠢的示例数据框:
\n\ndf <- data_frame(A = c(rep(1, 5), rep(2, 4)), B = 1:9) %>% \n group_by(A) %>% \n nest()\nRun Code Online (Sandbox Code Playgroud)\n\n看起来像这样:
\n\n> df\n# A tibble: 2 \xc3\x97 2\n A data\n <dbl> <list>\n1 1 <tibble [5 \xc3\x97 1]>\n2 2 <tibble [4 \xc3\x97 1]>\nRun Code Online (Sandbox Code Playgroud)\n\n我想添加第三列,其N条目等于每个嵌套 data_frame 中的行数data。我想这会起作用:
> df %>% \n+ mutate(N = nrow(data))\nError: Unsupported type NILSXP for column "N"\nRun Code Online (Sandbox Code Playgroud)\n\n出了什么问题?
\n结合起来dplyr你purrr可以这样做:
library(tidyverse)\n\ndf %>% \n mutate(n = map_dbl(data, nrow))\n#> # A tibble: 2 \xc3\x97 3\n#> A data n\n#> <dbl> <list> <dbl>\n#> 1 1 <tibble [5 \xc3\x97 1]> 5\n#> 2 2 <tibble [4 \xc3\x97 1]> 4\nRun Code Online (Sandbox Code Playgroud)\n\n我喜欢这种方法,因为您保持在通常的工作流程中,在 mutate 中创建一个新列,但利用 -family map_*,因为您需要对列表进行操作。
| 归档时间: |
|
| 查看次数: |
3609 次 |
| 最近记录: |