在嵌套和使用来自 tidyverse 的地图之后,心理包中的所有描述性结果如何取消嵌套?
Posted
技术标签:
【中文标题】在嵌套和使用来自 tidyverse 的地图之后,心理包中的所有描述性结果如何取消嵌套?【英文标题】:After nesting and using map from tidyverse, how unnest all descriptive results from psych package? 【发布时间】:2022-01-12 00:18:16 【问题描述】:我有一个包含quest
和几个topics
的数据集。应用“描述”功能(来自 psych 包)后,如何以方便的方式列出所有结果?
我得到的结果:
所需的输出是这样的:
ds <- data.frame(quest = c(2,4,6,8), math_sum = rnorm(100,10,1), science_sum = rnorm(100,8,1))
ds %>%
select(quest, ends_with("sum")) %>%
pivot_longer(-quest) %>%
nest_by(quest, name) %>%
mutate(x=list(map(data, ~psych::describe(.)))) %>%
unnest(-data)
【问题讨论】:
【参考方案1】:你可以使用unnest_wider()
:
library(tidyverse)
ds %>%
select(quest, ends_with("sum")) %>%
pivot_longer(-quest) %>%
nest_by(quest, name) %>%
mutate(x=list(map(data, ~psych::describe(.)))) %>%
unnest_wider(x) %>%
unnest_wider(value)
返回
# A tibble: 8 x 16
quest name data vars n mean sd median trimmed mad min max
<dbl> <chr> <list<tib> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 2 math_s~ [25 x 1] 1 25 10.3 1.22 10.1 10.3 0.963 7.96 12.9
2 2 scienc~ [25 x 1] 1 25 7.55 1.00 7.48 7.56 1.19 5.49 9.22
3 4 math_s~ [25 x 1] 1 25 9.59 0.998 9.50 9.58 0.858 7.31 11.6
4 4 scienc~ [25 x 1] 1 25 8.07 1.28 8.24 8.01 1.70 6.13 10.6
5 6 math_s~ [25 x 1] 1 25 9.85 0.932 9.79 9.79 0.929 8.50 11.8
6 6 scienc~ [25 x 1] 1 25 7.80 0.907 7.81 7.79 0.959 6.03 9.69
7 8 math_s~ [25 x 1] 1 25 10.2 1.19 10.4 10.2 1.06 8.09 13.1
8 8 scienc~ [25 x 1] 1 25 8.01 0.923 7.88 7.99 0.908 6.23 9.87
# ... with 4 more variables: range <dbl>, skew <dbl>, kurtosis <dbl>, se <dbl>
【讨论】:
谢谢!!效果很好!以上是关于在嵌套和使用来自 tidyverse 的地图之后,心理包中的所有描述性结果如何取消嵌套?的主要内容,如果未能解决你的问题,请参考以下文章