Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用中值函数估计R中的中值?_R_Compiler Errors_Statistics_Median - Fatal编程技术网

如何使用中值函数估计R中的中值?

如何使用中值函数估计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

我试图用矩函数计算一组变量的统计矩。为了做到这一点,我尝试编程一个函数

当我尝试对没有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","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。您的代码已被更正(并由我格式化),现在它可以工作了。