我知道通过使用sapply
,您可以找到数据框的mean
,median
或sd
列。我有一个包含许多列的数据框,我想知道如何使用sapply
来确定数据框中每列的标准错误(se)。
答案 0 :(得分:2)
如果你的数据在数据框中,那么这是一种实际上更有效的替代方案。
sapply(df,function(x)sd(x)/sqrt(length(x)))
数据框是列表列表(例如,每列是列表)。因此,将df
传递给sapply(...)
会导致df
的每一列都传递给该函数。这比传递索引和提取函数中的列表更有效。
比较结果:
df <- data.frame(matrix(rnorm(20),4,5))
mf <- function(x){sd(df[,x])/sqrt(length(df[,x]))}
sapply(1:length(df[1,]),mf)
# [1] 0.25025825 0.77221460 0.54097317 0.38468680 0.07733118
sapply(df,function(x)sd(x)/sqrt(length(x)))
# X1 X2 X3 X4 X5
# 0.25025825 0.77221460 0.54097317 0.38468680 0.07733118
答案 1 :(得分:1)
假设您通过将sd除以n来计算标准误差。
data=matrix(1:20,4,5)
mf <- function(x){sd(data[,x])/sqrt(length(data[,x]))}
sapply(1:length(data[1,]),mf)