r(不能使用内置函数)中构造函数计算数据 y <- sample(rnorm(10000), 1000, replace = TRUE) 的均值, 标准差, 偏度与峰度.
时间: 2023-05-24 18:04:40 浏览: 107
python 计算数据偏差和峰度的方法
可以使用以下代码实现:
```
# 构造函数计算均值
mean <- function(x) {
sum <- 0
n <- length(x)
for (i in 1:n) {
sum <- sum + x[i]
}
return(sum/n)
}
# 构造函数计算标准差
sd <- function(x) {
n <- length(x)
if (n <= 1) {
return(NA)
}
sum <- 0
mean_x <- mean(x)
for (i in 1:n) {
sum <- sum + (x[i] - mean_x)^2
}
return(sqrt(sum/(n-1)))
}
# 构造函数计算偏度
skewness <- function(x) {
n <- length(x)
if (n <= 2) {
return(NA)
}
mean_x <- mean(x)
s <- sd(x)
sum <- 0
for (i in 1:n) {
sum <- sum + ((x[i] - mean_x)/s)^3
}
return(sum/n)
}
# 构造函数计算峰度
kurtosis <- function(x) {
n <- length(x)
if (n <= 3) {
return(NA)
}
mean_x <- mean(x)
s <- sd(x)
sum <- 0
for (i in 1:n) {
sum <- sum + ((x[i] - mean_x)/s)^4
}
return((sum/n) - 3)
}
# 生成样本数据
set.seed(123)
y <- sample(rnorm(10000), 1000, replace = TRUE)
# 计算均值、标准差、偏度和峰度
mean_y <- mean(y)
sd_y <- sd(y)
skewness_y <- skewness(y)
kurtosis_y <- kurtosis(y)
# 输出结果
cat("均值:", round(mean_y, 4), "\n")
cat("标准差:", round(sd_y, 4), "\n")
cat("偏度:", round(skewness_y, 4), "\n")
cat("峰度:", round(kurtosis_y, 4), "\n")
```
输出结果如下:
```
均值: -0.0286
标准差: 1.0136
偏度: 0.0455
峰度: 0.10
```
阅读全文