样本均值和多个变量的样本方差

时间:2020-04-04 21:04:28

标签: r mean variance

我有一个csv文件mtcars,其中包含具有不同变量的汽车模型 enter image description here

我知道要找到均值,我只要做均值(mtcars $ mpg)并找到方差var(mtcars $ mpg)。而不是多次编写此代码,我将如何在一行中显示每个变量的所有均值和方差?数据集中的第一列是字符串,因此在计算均值和方差时如何忽略该列?谢谢。

2 个答案:

答案 0 :(得分:2)

tidyverse中,我们可以整形为'long'格式,然后按'name'分组,将meanvar iance作为summarise d输出到两列中

library(dplyr)
library(tidyr)
library(tibble)
mtcars %>% 
   rownames_to_column('model') %>% 
   pivot_longer(cols = -model) %>%
   group_by(name) %>%
   summarise(Mean = mean(value), Var = var(value))

或者另一个选择是summarise_if

mtcars %>% 
    rownames_to_column('model') %>% 
    summarise_if(is.numeric, list(Mean = mean, Var = var)) %>%
    pivot_longer(cols = everything())

或者使用colMeansmatrixStats::colVars

colMeans(mtcars[-1])
matrixStats::colVars(as.matrix(mtcars[-1])) 

答案 1 :(得分:1)

早上好,用户。

也尝试使用

Rfast::colVars(x) 

我的实验表明,速度至少要快2倍。第二种选择是

Rfast2::colmeansvars(x)
相关问题