dplyr summarise_each 标准误差函数
dplyr summarise_each standard error function
我可以使用以下方法总结我的数据并计算平均值和标准差值:
summary <- aspen %>% group_by(year,Spp,CO2) %>% summarise_each(funs(mean,sd))
但是,我也无法计算标准误差。我尝试了这个但没有成功:
summary <- aspen %>% group_by(year,Spp,CO2) %>% summarise_each(funs(mean,sd,se=sd/sqrt(n())))
您可以使用 plotrix
包中的 std.error
函数,或者先定义您自己的函数并将该函数名称作为参数传递。
library(plotrix)
summary <- aspen %>% group_by(year,Spp,CO2) %>%
summarise_each(funs(mean,sd,std.error)))
你可以做到
library(dplyr)
aspen %>%
group_by(year,Spp,CO2) %>%
summarise_each(funs(mean,sd,se=sd(.)/sqrt(n())))
为了可重复性,
data(mtcars)
grpMt <- mtcars %>%
group_by(gear, carb)
grpMt %>%
summarise_each(funs(mean, sd, se=sd(.)/sqrt(n())), hp:drat) %>%
slice(1:2)
# gear carb hp_mean drat_mean hp_sd drat_sd hp_se drat_se
#1 3 1 104.0 3.1800 6.557439 0.4779121 3.785939 0.27592269
#2 3 2 162.5 3.0350 14.433757 0.1862794 7.216878 0.09313968
#3 4 1 72.5 4.0575 13.674794 0.1532699 6.837397 0.07663496
#4 4 2 79.5 4.1625 26.913441 0.5397144 13.456721 0.26985722
#5 5 2 102.0 4.1000 15.556349 0.4666905 11.000000 0.33000000
#6 5 4 264.0 4.2200 NA NA NA NA
与 std.error
来自 plotrix
的相同
library(plotrix)
grpMt %>%
summarise_each(funs(mean, sd, se=std.error), hp:drat) %>%
slice(1:2)
# gear carb hp_mean drat_mean hp_sd drat_sd hp_se drat_se
#1 3 1 104.0 3.1800 6.557439 0.4779121 3.785939 0.27592269
#2 3 2 162.5 3.0350 14.433757 0.1862794 7.216878 0.09313968
#3 4 1 72.5 4.0575 13.674794 0.1532699 6.837397 0.07663496
#4 4 2 79.5 4.1625 26.913441 0.5397144 13.456721 0.26985722
#5 5 2 102.0 4.1000 15.556349 0.4666905 11.000000 0.33000000
#6 5 4 264.0 4.2200 NA NA NA NA
@akrun 的重要附加组件:
如果可能出现缺失值 (NA
),您应该使用:
summarise_each(funs(mean(., na.rm=T), n = sum(!is.na(.)), se = sd(., na.rm=T)/sqrt(sum(!is.na(.)))), hp:drat)
不幸的是,n()
函数不会删除缺失值,因此除了使用 na.rm=T
之外,我们还需要将 n()
替换为 sum(!is.na(.))
。
关于我自己的一些数据如何出错的说明:
summarise_each(funs(
mean(., na.rm=T), n1=n(), n2=sum(!is.na(.)),
se1=sd(., na.rm=T)/sqrt(n()), se2=sd(., na.rm=T)/sqrt(sum(!is.na(.)))), rating)
n2
和 se2
是正确的值。
我可以使用以下方法总结我的数据并计算平均值和标准差值:
summary <- aspen %>% group_by(year,Spp,CO2) %>% summarise_each(funs(mean,sd))
但是,我也无法计算标准误差。我尝试了这个但没有成功:
summary <- aspen %>% group_by(year,Spp,CO2) %>% summarise_each(funs(mean,sd,se=sd/sqrt(n())))
您可以使用 plotrix
包中的 std.error
函数,或者先定义您自己的函数并将该函数名称作为参数传递。
library(plotrix)
summary <- aspen %>% group_by(year,Spp,CO2) %>%
summarise_each(funs(mean,sd,std.error)))
你可以做到
library(dplyr)
aspen %>%
group_by(year,Spp,CO2) %>%
summarise_each(funs(mean,sd,se=sd(.)/sqrt(n())))
为了可重复性,
data(mtcars)
grpMt <- mtcars %>%
group_by(gear, carb)
grpMt %>%
summarise_each(funs(mean, sd, se=sd(.)/sqrt(n())), hp:drat) %>%
slice(1:2)
# gear carb hp_mean drat_mean hp_sd drat_sd hp_se drat_se
#1 3 1 104.0 3.1800 6.557439 0.4779121 3.785939 0.27592269
#2 3 2 162.5 3.0350 14.433757 0.1862794 7.216878 0.09313968
#3 4 1 72.5 4.0575 13.674794 0.1532699 6.837397 0.07663496
#4 4 2 79.5 4.1625 26.913441 0.5397144 13.456721 0.26985722
#5 5 2 102.0 4.1000 15.556349 0.4666905 11.000000 0.33000000
#6 5 4 264.0 4.2200 NA NA NA NA
与 std.error
来自 plotrix
library(plotrix)
grpMt %>%
summarise_each(funs(mean, sd, se=std.error), hp:drat) %>%
slice(1:2)
# gear carb hp_mean drat_mean hp_sd drat_sd hp_se drat_se
#1 3 1 104.0 3.1800 6.557439 0.4779121 3.785939 0.27592269
#2 3 2 162.5 3.0350 14.433757 0.1862794 7.216878 0.09313968
#3 4 1 72.5 4.0575 13.674794 0.1532699 6.837397 0.07663496
#4 4 2 79.5 4.1625 26.913441 0.5397144 13.456721 0.26985722
#5 5 2 102.0 4.1000 15.556349 0.4666905 11.000000 0.33000000
#6 5 4 264.0 4.2200 NA NA NA NA
@akrun 的重要附加组件:
如果可能出现缺失值 (NA
),您应该使用:
summarise_each(funs(mean(., na.rm=T), n = sum(!is.na(.)), se = sd(., na.rm=T)/sqrt(sum(!is.na(.)))), hp:drat)
不幸的是,n()
函数不会删除缺失值,因此除了使用 na.rm=T
之外,我们还需要将 n()
替换为 sum(!is.na(.))
。
关于我自己的一些数据如何出错的说明:
summarise_each(funs(
mean(., na.rm=T), n1=n(), n2=sum(!is.na(.)),
se1=sd(., na.rm=T)/sqrt(n()), se2=sd(., na.rm=T)/sqrt(sum(!is.na(.)))), rating)
n2
和 se2
是正确的值。