r - 如何使用 dplyr 管道一次性取消嵌套数据帧的多个列表列
问题描述
我有以下小标题,它有两个嵌套列:
library(tidyverse)
df <- structure(list(a = list(c("a", "b"), "c"), b = list(c("1", "2",
"3"), "3"), c = c(11, 22)), class = c("tbl_df", "tbl", "data.frame"
), row.names = c(NA, -2L))
产生:
# A tibble: 2 x 3
a b c
<list> <list> <dbl>
1 <chr [2]> <chr [3]> 11
2 <chr [1]> <chr [1]> 22
我怎样才能一次将它们解开,产生一个小标题?
我试过这个但失败了:
> df %>% unnest(a, b)
Error: All nested columns must have the same number of elements.
解决方案
可能有一种更清洁的方法,但如果你想要列的笛卡尔积,你可以按顺序取消它们,如果没有别的:
> df %>%
unnest(a, .drop = FALSE) %>%
unnest(b, .drop = FALSE)
# # A tibble: 7 x 3
# c a b
# <dbl> <chr> <chr>
# 1 11 a 1
# 2 11 a 2
# 3 11 a 3
# 4 11 b 1
# 5 11 b 2
# 6 11 b 3
# 7 22 c 3
推荐阅读
- php - PHP Mysqli 数据库连接池以避免最大用户数
- tmux - 从 tmux 命令行创建新窗格
- security - 如何通过 IP 地址限制对我的 subversion 服务器(即 svnserve)的访问,所以只有我的 IP 可以签出、提交等?
- python - Json数据排序PANDAS,python
- php - PHP 正则表达式字符串和减法部分
- apache-spark - 如何在 ElasticSearch 中创建索引并从流式查询中推送数据?
- javascript - javascript onclicking按钮给不同的div
- windows - 在命令行上创建一个 tar.xz 文件
- javascript - Chart.js 一次向画布添加 200 个数据
- crystal-reports - 对最后具有指定值的组进行排序