【发布时间】:2021-07-11 22:41:45
【问题描述】:
在 R 中将向量转换为单行数据框的最简洁和/或优雅的方法是什么?我正在尝试使用一个返回 5 元素向量并将其应用于我的数据框中的组的函数,如下所示:
library(tidyverse)
mtcars %>%
group_by(cyl) %>%
group_map(~boxplot.stats(.$wt)$stats)
我希望将这些结果作为新数据框中的行,而不是向量列表,因此我可以在 ggplot 中使用它们进行绘图。但是我想出的最好的方法是将do.call(rbind, .) %>% as.data.frame 添加到我的管道末尾,这看起来既笨拙又不优雅。用group_modify 替换group_map 似乎是答案,但该函数抱怨我的结果不是数据框。并且将匿名函数包装在对 tibble_row 的调用中不起作用,因为 tibble_row 不会采用向量,仅采用单个元素或显式列表列。
理想情况下,输出如下所示:
cyl V1 V2 V3 V4 V5
1 4 1.513 1.8850 2.200 2.6225 3.19
2 6 2.620 2.8225 3.215 3.4400 3.46
3 8 3.170 3.5200 3.755 4.0700 4.07
肯定有一种更优雅的方式来做我想做的事情,最好是在 tidyverse 框架内?
【问题讨论】: