r - 在 map() 中使用 spread()
问题描述
我正在努力在 map() 函数中使用 spread() 。这是一个示例数据:
data1 <- tibble(size = c("1", "2", "3", "4"),
color = c("blue", "green", "yellow", "black"))
data2 <- tibble(size = c("7", "3", "10", "1"),
color = c("orange", "yellow", "red", "white"))
dataList <- list(data1, data2)
我想用我的列表实现的目标与使用单个 tibble 的目标类似:
spread(data1, size, color)
# A tibble: 1 x 4
`1` `2` `3` `4`
<chr> <chr> <chr> <chr>
1 blue green yellow black
但是我想以某种方式使用 map() 将这个 spread() 应用到我列表的两个小标题上。但我找不到正确的方法来做到这一点......知道吗?非常感谢你的帮助!
解决方案
使用tidyr::pivot_wider
sincetidyr::spread
已折旧:
data1 <- tibble::tibble(size = c("1", "2", "3", "4"),
color = c("blue", "green", "yellow", "black"))
data2 <- tibble::tibble(size = c("7", "3", "10", "1"),
color = c("orange", "yellow", "red", "white"))
dataList <- list(data1, data2)
purrr::map(.x = dataList, .f = ~tidyr::pivot_wider(.x, names_from = size, values_from = color) )
#> [[1]]
#> # A tibble: 1 x 4
#> `1` `2` `3` `4`
#> <chr> <chr> <chr> <chr>
#> 1 blue green yellow black
#>
#> [[2]]
#> # A tibble: 1 x 4
#> `7` `3` `10` `1`
#> <chr> <chr> <chr> <chr>
#> 1 orange yellow red white
推荐阅读
- python - 检查昵称时如何检查数组中的每个元素
- sql - 需要 where 子句来查找 'today' 和 date_column > 10 天和 < 15 天之间的差异
- excel - Excel 宏在使用快捷键打开的 .csv 文件上停止
- data-visualization - 如何显示从谷歌搜索控制台到数据工作室的前 5 个登陆页面?
- python - 我想结合使用 map()、lambda 和 enumerate
- angular - 如何在不注入的情况下使用或替换 Angular 的 HttpClient
- python - 将更多 Celery 任务生成到链中的组中
- c - 为什么 Cygwin gdb 在调试带有线程的程序时会出现问题?
- python - 在函数内部定义之前使用“全局”关键字会发生什么?
- php - 我应该将完整条件传递给要根据它过滤结果的 Select SQL 查询,还是只获取数据并在 php 中过滤它们?