【发布时间】:2020-08-23 19:50:37
【问题描述】:
我正在为大型数据框中的许多变量计算摘要统计信息(它有 130 个变量)。我希望为我的所有数据计算每十年的汇总统计数据。我想避免写两次总结:一次用于分组,一次用于完整数据。我也使用 summarise_at,所以我的问题也适用于 summarise_at。
这是一个最小的示例,其中 summarise_at() 似乎有点过头,但对于我的真实数据而言并非如此:
my.data <- data.frame(Date = as.Date(c('1981-04-09', '1983-02-01', '1992-10-19', '1996-11-22', '1987-05-15')),
decade = c('Eighties', 'Eighties', 'Nineties', 'Nineties', 'Eighties'),
price = c(10, 11, 17, 34, 12),
d.sector.Oil = c(0,0,1,1,1),
d.sector.Mines = c(1,1,0,0,0)) # An example dataframe
# Calculate summary statistics for each decade and each variable:
sumst.decades<- my.data %>% group_by(decade) %>% summarise(mean.price = mean(price))
sumd.decades<- my.data %>% group_by(decade) %>% summarise_at(vars(starts_with('d.sector.')), sum)
我的完整数据需要相同的摘要。我会重复上面的命令行,但没有“group_by”:
sumst<- summarise(my.data, mean.price = mean(price))
sumd<- summarise_at(my.data, vars(starts_with('d.sector.')), sum)
我希望不必写最后两行,但不知何故,dplyr 除了分组摘要外,还给了我一个全局摘要。例如,如果有一个函数 group_by* 可以根据需要创建组并创建一个全局组。这样的事情存在吗? 我希望我的问题很清楚。提前致谢。
【问题讨论】:
-
如果有一个内置函数可以提供两个摘要,我会感到惊讶。您必须再次重复总结。
-
谢谢爱德华。我也会感到惊讶,但它实际上似乎是处理大数据的有用功能。也许有人已经想到了。我拭目以待。