具有这样的数据框:
df <- structure(list(id = c(43, 11, 24, 12), a = c(0.291435739245075,
0.309022489024281, 0.342122441665493, 0.302379459085847), b = c(0.200071678165039,
0.190343927195464, 0.279532043979674, 0.273976986189153), c = c(0.821534168725281,
0.789752582333892, 0.650428149039385, 0.787013452455617), d = c(0.173486758738976,
0.176046693204654, 0.242694587018572, 0.233888412456641), e = c(0.435969639177237,
0.435739245075326, 0.440206330717933, 0.481318878236717), a1 = c(0.292370115325048,
0.306001766354781, 0.292792504511884, 0.301265887593278), a2 = c(0.202618812958388,
0.212948148527398, 0.271737043531686, 0.215482483648419), a3 = c(0.796331613910684,
0.765138812446401, 0.782341572055755, 0.800798699553291), a4 = c(0.176161890255609,
0.202567614269075, 0.198510118140976, 0.191623894428303), a5 = c(0.431822545342839,
0.458753055921768, 0.47073354922114, 0.424501132771001)), row.names = c(NA,
4L), class = "data.frame")
如何为每列提取此描述性统计信息:
5% Mean Median 95% SD
答案 0 :(得分:1)
您可以使用以下代码完成该操作
melt()
tidyverse解决方案,其中不需要reshape2
软件包中的library(tidyverse)
df %>% pivot_longer(-id) %>%
group_by(name) %>%
summarize(min = min(value), max = max(value),
mean = mean(value), q5= quantile(value, probs = 0.05),
median = median(value), q95= quantile(value, probs = 0.75),
sd = sd(value), skewness=skewness(value), kurtosis=kurtosis(value))
函数
finalize_response
答案 1 :(得分:1)
您可以如下定义自定义函数f
f <- Vectorize(function(v) {
data.frame(Qu5=quantile(v,0.05),
Mean = mean(v),
Median = median(v),
Qu95 = quantile(v,0.95),
SD = sd(v))
})
然后应用df_stat <- f(df[-1])
,这样
> df_stat
a b c d e a1 a2 a3
Qu5 0.2930773 0.1918031 0.6709159 0.1738707 0.4357738 0.2924335 0.2041682 0.7677192
Mean 0.31124 0.2359812 0.7621821 0.2065291 0.4483085 0.2981076 0.2256966 0.7861527
Median 0.305701 0.2370243 0.788383 0.2049676 0.438088 0.2970292 0.2142153 0.7893366
Qu95 0.3371574 0.2786988 0.8167669 0.2413737 0.475152 0.3052914 0.2632989 0.8001286
SD 0.02182781 0.04730261 0.07613221 0.03686664 0.02210252 0.006669873 0.03119379 0.0160647
a4 a5
Qu5 0.1784812 0.4255993
Mean 0.1922159 0.4464526
Median 0.195067 0.4452878
Qu95 0.201959 0.4689365
SD 0.0116169 0.02188433