如何使用中值函数估计R中的中值?
我试图用矩函数计算一组变量的统计矩。为了做到这一点,我尝试编程一个函数 当我尝试对没有NA或缺失的数据帧使用我的函数时,我确认数据是干净的,我有下一个错误:如何使用中值函数估计R中的中值?,r,compiler-errors,statistics,median,R,Compiler Errors,Statistics,Median,我试图用矩函数计算一组变量的统计矩。为了做到这一点,我尝试编程一个函数 当我尝试对没有NA或缺失的数据帧使用我的函数时,我确认数据是干净的,我有下一个错误: library(moments) summary.stat0 = function(data){ SUM = matrix(NA,ncol=ncol(data),nrow=7) colnames(SUM) = colnames(data) rownames(SUM) = c("Mean","Median","Maximum
library(moments)
summary.stat0 = function(data){
SUM = matrix(NA,ncol=ncol(data),nrow=7)
colnames(SUM) = colnames(data)
rownames(SUM) = c("Mean","Median","Maximum","Minimum","Std. Dev.","Skewness","Kurtosis")
for (i in 1:ncol(data)) {
SUM[1,i] = mean(data[,i])
SUM[2,i] = median(data[,i])
SUM[3,i] = max(data[,i])
SUM[4,i] = min(data[,i])
SUM[5,i] = sd(data[,i])
SUM[6,i] = skewness(data[,i])
SUM[7,i] = kurtosis(data[,i])
}
SUM
}
中位数错误。默认值(数据[i]):需要数字数据添加:警告消息:平均值。默认值(数据[i]):
如果有人能帮我完成此功能,我将不胜感激您可以在一个
apply
循环中计算所有需要的统计信息
library(moments)
summary.stat <- function(data, na.rm = TRUE){
SUM <- apply(data, 2, function(x){
c(Mean = mean(x, na.rm = na.rm),
Median = median(x, na.rm = na.rm),
Max = max(x, na.rm = na.rm),
Min = min(x, na.rm = na.rm),
`Std. Dev.` = sd(x, na.rm = na.rm),
Skewness = skewness(x, na.rm = na.rm),
Kurtosis = kurtosis(x, na.rm = na.rm)
)})
colnames(SUM) <- colnames(data)
SUM
}
set.seed(1234)
df1 <- as.data.frame(replicate(3, rnorm(10)))
summary.stat(df1)
# V1 V2 V3
#Mean -0.3831574 -0.1181707 -0.38794682
#Median -0.5555419 -0.4941011 -0.46561688
#Max 1.0844412 2.4158352 0.57475572
#Min -2.3456977 -0.9983864 -1.44820491
#Std. Dev. 0.9957875 1.0673376 0.66600127
#Skewness -0.4243347 1.5011660 0.02058876
#Kurtosis 2.6686992 4.1925245 1.87910667
库(时刻)
summary.stat Eve,请通过包含样本数据和该数据的预期输出,使该问题具有可复制性。关于如何构建坚实问题的一些很好的参考资料:,和。看看你使用中值
的那一行,你写的是数据[i]
,而不是数据[,i]
(就像在其他行中一样),偏度来自哪里?有许多软件包具有偏斜功能。非常感谢。你的代码功能完美;虽然我不明白为什么我的代码不起作用。请参阅@fmarm。您的代码已被更正(并由我格式化),现在它可以工作了。