重复函数以查找多个数据列的描述性统计信息
Repeat function to find descriptive statistics for several data columns
正在尝试做重复函数和描述性统计。下面一行
print (table <- data.frame(replicate(5,sample(50:100,10,rep=TRUE))))
生成图像中的table。
我想使用下面的编码对 X1 和 X4 列进行一些描述性统计。
GenStats <- function(x){
newMatrix <- matrix (1:8, nrow = 1)
colnames(newMatrix) <- c("Mean", "Median", "Maximum", "Variance", "Minimum", "Skewness",
"Kurtosis", "Std.Dev")
rownames(newMatrix) <- "Key Statistics"
newMatrix[1,] <- c(mean(x), median(x), max(x), var(x), min(x),
skewness(x), kurtosis(x), sd(x))
newMatrix
}
我可以让它为 1 个样本工作,例如
x<- table$X1,带 GenStats(x)
那么我的问题 - 我如何查看两个样本(独立处理),例如X1 和 X4?
我试过了 -
x <- c("table$X1", "table$X4")
但这没有用。
然后我尝试使用 sapply,例如
sapply(x, function(x) {
+ (x[, c(mean, median, sd)])
+ })
但错误消息中出现意外的“}”。
一如既往,如果有人能指导我,我将不胜感激。
提前致谢。
这是否解决了您的问题?
library(dplyr)
output <- sapply(table %>% select(X1,X4), FUN = GenStats)
rownames(output) <- c("Mean", "Median", "Maximum", "Variance", "Minimum", "Skewness",
"Kurtosis", "Std.Dev")
output
X1 X4
Mean 78.9000000 76.10000000
Median 84.0000000 74.50000000
Maximum 96.0000000 95.00000000
Variance 286.9888889 222.54444444
Minimum 52.0000000 53.00000000
Skewness -0.4325578 -0.03126238
Kurtosis -1.5714491 -1.59510245
Std.Dev 16.9407464 14.91792360
编辑:您可以替换第一行中的 X1 和 X4 以将函数应用于您想要的列
您可以使用 psych
库中的 describe
:
library(psych)
describe(table[,c("X1", "X4")])
输出:
vars n mean sd median trimmed mad min max range skew kurtosis se
X1 1 10 67.2 16.61 61.5 65.25 14.83 50 100 50 0.64 -1.08 5.25
X4 2 10 72.6 15.92 73.0 72.62 22.24 53 92 39 0.00 -1.90 5.03
或者:使用你自己的函数
使用 lapply
通知 skewness
更改为倾斜并且 kurtosis
更改为 kurtosi
library(psych)
GenStats <- function(x){
newMatrix <- matrix (1:8, nrow = 1)
colnames(newMatrix) <- c("Mean", "Median", "Maximum", "Variance", "Minimum", "Skewness",
"Kurtosis", "Std.Dev")
rownames(newMatrix) <- "Key Statistics"
newMatrix[1,] <- c(mean(x), median(x), max(x), var(x), min(x),
skew(x), kurtosi(x), sd(x))
newMatrix
}
lapply(table[,c(1,4)], GenStats)
输出:
$X1
Mean Median Maximum Variance Minimum Skewness Kurtosis Std.Dev
Key Statistics 67.2 61.5 100 275.9556 50 0.6432985 -1.079559 16.61191
$X4
Mean Median Maximum Variance Minimum Skewness Kurtosis Std.Dev
Key Statistics 72.6 73 92 253.3778 53 0.004540284 -1.90361 15.91784
正在尝试做重复函数和描述性统计。下面一行
print (table <- data.frame(replicate(5,sample(50:100,10,rep=TRUE))))
生成图像中的table。
我想使用下面的编码对 X1 和 X4 列进行一些描述性统计。
GenStats <- function(x){
newMatrix <- matrix (1:8, nrow = 1)
colnames(newMatrix) <- c("Mean", "Median", "Maximum", "Variance", "Minimum", "Skewness",
"Kurtosis", "Std.Dev")
rownames(newMatrix) <- "Key Statistics"
newMatrix[1,] <- c(mean(x), median(x), max(x), var(x), min(x),
skewness(x), kurtosis(x), sd(x))
newMatrix
}
我可以让它为 1 个样本工作,例如
x<- table$X1,带 GenStats(x)
那么我的问题 - 我如何查看两个样本(独立处理),例如X1 和 X4?
我试过了 -
x <- c("table$X1", "table$X4")
但这没有用。
然后我尝试使用 sapply,例如
sapply(x, function(x) {
+ (x[, c(mean, median, sd)])
+ })
但错误消息中出现意外的“}”。
一如既往,如果有人能指导我,我将不胜感激。
提前致谢。
这是否解决了您的问题?
library(dplyr)
output <- sapply(table %>% select(X1,X4), FUN = GenStats)
rownames(output) <- c("Mean", "Median", "Maximum", "Variance", "Minimum", "Skewness",
"Kurtosis", "Std.Dev")
output
X1 X4
Mean 78.9000000 76.10000000
Median 84.0000000 74.50000000
Maximum 96.0000000 95.00000000
Variance 286.9888889 222.54444444
Minimum 52.0000000 53.00000000
Skewness -0.4325578 -0.03126238
Kurtosis -1.5714491 -1.59510245
Std.Dev 16.9407464 14.91792360
编辑:您可以替换第一行中的 X1 和 X4 以将函数应用于您想要的列
您可以使用 psych
库中的 describe
:
library(psych)
describe(table[,c("X1", "X4")])
输出:
vars n mean sd median trimmed mad min max range skew kurtosis se
X1 1 10 67.2 16.61 61.5 65.25 14.83 50 100 50 0.64 -1.08 5.25
X4 2 10 72.6 15.92 73.0 72.62 22.24 53 92 39 0.00 -1.90 5.03
或者:使用你自己的函数
使用 lapply
通知 skewness
更改为倾斜并且 kurtosis
更改为 kurtosi
library(psych)
GenStats <- function(x){
newMatrix <- matrix (1:8, nrow = 1)
colnames(newMatrix) <- c("Mean", "Median", "Maximum", "Variance", "Minimum", "Skewness",
"Kurtosis", "Std.Dev")
rownames(newMatrix) <- "Key Statistics"
newMatrix[1,] <- c(mean(x), median(x), max(x), var(x), min(x),
skew(x), kurtosi(x), sd(x))
newMatrix
}
lapply(table[,c(1,4)], GenStats)
输出:
$X1
Mean Median Maximum Variance Minimum Skewness Kurtosis Std.Dev
Key Statistics 67.2 61.5 100 275.9556 50 0.6432985 -1.079559 16.61191
$X4
Mean Median Maximum Variance Minimum Skewness Kurtosis Std.Dev
Key Statistics 72.6 73 92 253.3778 53 0.004540284 -1.90361 15.91784