我正在尝试计算每个列中此数据集的样本数、平均值、标准偏差、变异系数、95% 置信上限和下限以及四分位数,并将其放入新的数据框中。
下面的数字不一定都是正确的&我没有全部填写,只是提供了一个例子。这些值将用于创建箱线图,因此需要四分位数。行和列最终将成为标题。请参阅下面的示例。
这是结构:
B1 <- c(8, 6, 13, 6, 27, 104, 18, 3)
B2 <- c(2, 13, 1, 64, 127, 24, 4, 3)
B3 <- c(8, 16, 113, 680, 227, 310, 138, 30)
B4 <- c(238, 46, 613, 69, 7, 14, 4, 8)
x <- data.frame(B1, B2, B3, B4)
> head(x)
B1 B2 B3 B4
1 8 2 8 238
2 6 13 16 46
3 13 1 113 613
4 6 64 680 69
5 27 127 227 7
6 104 24 310 14
Run Code Online (Sandbox Code Playgroud)
期望的输出:
> y
B1 B2 B3 B4
n 8 8 8 8
mean 23 30 190 125
Stand dev 5 2 34 2
CoeffofVariation 0.3 0.4 0.7 1.3
LowerConfInterval 2 20 35 45
UpperConfInterval 50 120 122 120
LowerQuartile
Median
Upper Quantile
Inter Quartile Range
Minimum
Maximum
Regression equation
Run Code Online (Sandbox Code Playgroud)
你可以使用这样的东西:
B1 <- c(8, 6, 13, 6, 27, 104, 18, 3)
B2 <- c(2, 13, 1, 64, 127, 24, 4, 3)
B3 <- c(8, 16, 113, 680, 227, 310, 138, 30)
B4 <- c(238, 46, 613, 69, 7, 14, 4, 8)
combDF <- data.frame(cbind(B1,B2,B3,B4))
data_long <- gather(combDF, factor_key=TRUE)
data_long%>% group_by(key)%>%
summarise(mean= mean(value), sd= sd(value), max = max(value),min = min(value))
Run Code Online (Sandbox Code Playgroud)
输出将是:
# A tibble: 4 x 5
key mean sd max min
<fctr> <dbl> <dbl> <dbl> <dbl>
1 B1 23.125 33.60458 104 3
2 B2 29.750 44.59260 127 1
3 B3 190.250 224.72253 680 8
4 B4 124.875 212.08653 613 4
Run Code Online (Sandbox Code Playgroud)
您尚未指定您要查看的置信级别,但我发布的代码可以适应您的问题。
小智 5
正如 lmo 所提到的,你可以sapply像这样使用:
sapply(x, function(x) c( "Stand dev" = sd(x),
"Mean"= mean(x,na.rm=TRUE),
"n" = length(x),
"Median" = median(x),
"CoeffofVariation" = sd(x)/mean(x,na.rm=TRUE),
"Minimum" = min(x),
"Maximun" = max(x),
"Upper Quantile" = quantile(x,1),
"LowerQuartile" = quantile(x,0)
)
)
Run Code Online (Sandbox Code Playgroud)
输出:
B1 B2 B3 B4
Stand dev 33.604581 44.592600 224.722527 212.086531
Mean 23.125000 29.750000 190.250000 124.875000
n 8.000000 8.000000 8.000000 8.000000
Median 10.500000 8.500000 125.500000 30.000000
CoeffofVariation 1.453171 1.498911 1.181196 1.698391
Minimum 3.000000 1.000000 8.000000 4.000000
Maximun 104.000000 127.000000 680.000000 613.000000
Upper Quantile.100% 104.000000 127.000000 680.000000 613.000000
LowerQuartile.0% 3.000000 1.000000 8.000000 4.000000
Run Code Online (Sandbox Code Playgroud)