r - “撤消”使用 stringr::str_split 创建的嵌套 tibble
问题描述
我在 R 中使用stringr::str_split
. 有没有比我在下面介绍的解决方案更优雅的方式从嵌套的 tibble 到“原始”tibble?
library(tidyverse)
# original tibble
df <- tibble(x = c("a", "b"),
y = c("a1, a2", "b1, b2"))
df
#> # A tibble: 2 x 2
#> x y
#> <chr> <chr>
#> 1 a a1, a2
#> 2 b b1, b2
# nested version
df_nested <- df %>%
mutate(y = str_split(y, ", "))
df_nested
#> # A tibble: 2 x 2
#> x y
#> <chr> <list>
#> 1 a <chr [2]>
#> 2 b <chr [2]>
# to get back to original
mutate(df, y = unlist(lapply(y, paste0, collapse = ", ")))
#> # A tibble: 2 x 2
#> x y
#> <chr> <chr>
#> 1 a a1, a2
#> 2 b b1, b2
由reprex 包(v0.2.1)于 2019 年 1 月 7 日创建
解决方案
我们可以map
使用purrr
library(tidyverse)
df_nested %>%
mutate(y = map_chr(y, toString))
# A tibble: 2 x 2
# x y
# <chr> <chr>
#1 a a1, a2
#2 b b1, b2
此外,这两个步骤都可以通过andtidyverse
以另一种方式完成,separate_rows
group_by
summarise
df %>%
separate_rows(y) %>% # long format
group_by(x) %>%
summarise(y = toString(y)) # wide format
推荐阅读
- node.js - Heroku 服务器中的节点 JS 端点在从 JioSaavn API 检索它们时针对不同类型的音乐数据表现不同
- url - 在重定向到另一个 URL 之前从页面获取 URL
- typescript - 如何在 typescript 3.9.7 中编写 MapBy 类型
- c# - nopcommerce 4.4 定制:等待方法抛出空引用异常
- r - 合并 data.frame 中的重叠列
- python - 将第一个数组列表的第二个值(24)与第二个数组列表的第一个值(118)相加,依此类推
- android - 除非在 Flutter 中重新打开应用,否则在设置中将主题从浅色更改为深色不会反映在应用中
- python - 使用python openpyxl在excel文件中输入日期的方法
- ocr - 如何在 pdftron 节点 js 应用程序中使用 OCR 模块?
- javascript - 使用javascript单击后退按钮时转到上一个窗口选项卡