【发布时间】:2019-12-10 14:20:41
【问题描述】:
我有一个非常大的 tibble 数据集。我想使用一些返回列表的函数来总结数据。我对列表中的几个组件感兴趣,我想将我需要的每个组件返回到新的 tibble 列中。
这是一个例子
library(tibble)
library(dplyr)
# Create a data set of 1,000 random values in 100 subgroups with sample size 10
contrived_data <- tibble(subgroup = rep(1:100, each = 10),
value = rnorm(1000, mean = 5, sd = 1))
# Run the KS test vs. normal distribution on each sample of size 10. Return the KS statistic and p-value
# into new tibble columns
contrived_data %>% group_by(subgroup) %>%
summarize(avg = mean(value),
std_dev = sd(value),
ks_stat = ks.test(value, "pnorm", mean = 5, sd = 1)$statistic,
ks_pval = ks.test(value, "pnorm", mean = 5, sd = 1)$p.value)
以这种方式运行它可以获得我想要的结果,但效率不高。调用ks.test 函数两次意味着执行时间(几乎)翻了一番。似乎必须有一种更有效的方法来通过单个函数调用来提取这两个列表组件,但我不知道该怎么做。
【问题讨论】: