我如何使用中值函数估计 R 中的中值?
How can i estimate the median in R using the median fuction?
我正在尝试使用矩函数为一组变量计算一些统计矩。为了做到这一点,我尝试编写一个函数
当我尝试将我的函数与没有 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
}
Error in median.default(data[i]) : need numeric data In addition: Warning message: In mean.default(data[, 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
我正在尝试使用矩函数为一组变量计算一些统计矩。为了做到这一点,我尝试编写一个函数
当我尝试将我的函数与没有 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
}
Error in median.default(data[i]) : need numeric data In addition: Warning message: In mean.default(data[, 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