R中数据帧的列的标准误差

时间:2014-04-05 20:06:47

标签: r

我知道通过使用sapply,您可以找到数据框的meanmediansd列。我有一个包含许多列的数据框,我想知道如何使用sapply来确定数据框中每列的标准错误(se)。

2 个答案:

答案 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)