将摘要 table 矩阵分成 R 中的几个 table 矩阵
Dividing Summary table Matrix into a few table Matrix in R
所以我有一个暗淡的矩阵,它有 17 列和 1000 行(所有这些都是数字),然后我总结了矩阵,summary(matrix)
然后我得到了这些:
我的问题是:有没有办法把这些摘要table分成几个table?喜欢这些
V1 V2 V3 V4 V5 V6
Min
1st Qu
Median
Mean
3rd Qu
Max
V7 V8 V9 V10 V11 V12
Min
1st Qu
Median
Mean
3rd Qu
Max
V13 V14 V15 V16 V17
Min
1st Qu
Median
Mean
3rd Qu
Max
我需要在我的 R shiny 应用程序中维护 space 以显示这些矩阵,而不会使其显示像这些
注意:对不起,如果我只能说一张图片
1) read.dcf/unnest矩阵的元素是DCF形式所以我们可以使用read.dcf
然后unnest
:
library(tidyr)
s <- summary(mtcars)
DF <- read.dcf(textConnection(s), all = TRUE)
res <- setNames(data.frame(t(unnest(DF)), check.names = FALSE), trimws(colnames(s)))
给予:
> res
mpg cyl disp hp drat wt qsec vs am gear carb
Min. 10.40 4.000 71.1 52.0 2.760 1.513 14.50 0.0000 0.0000 3.000 1.000
1st Qu. 15.43 4.000 120.8 96.5 3.080 2.581 16.89 0.0000 0.0000 3.000 2.000
Median 19.20 6.000 196.3 123.0 3.695 3.325 17.71 0.0000 0.0000 4.000 2.000
Mean 20.09 6.188 230.7 146.7 3.597 3.217 17.85 0.4375 0.4062 3.688 2.812
3rd Qu. 22.80 8.000 326.0 180.0 3.920 3.610 18.90 1.0000 1.0000 4.000 4.000
Max. 33.90 8.000 472.0 335.0 4.930 5.424 22.90 1.0000 1.0000 5.000 8.000
2) 子集列 为了减少宽度,这可以分解为 res[1:6]
和 res[7:11]
或者更一般地,如果有 n
列,我们希望每组 k
列,最后一组除外:
n <- ncol(res)
k <- 6
g <- droplevels(gl(n, k, n)) # grouping vector
lapply(split(as.list(res), g), data.frame)
给予:
$`1`
mpg cyl disp hp drat wt
Min. 10.40 4.000 71.1 52.0 2.760 1.513
1st Qu. 15.43 4.000 120.8 96.5 3.080 2.581
Median 19.20 6.000 196.3 123.0 3.695 3.325
Mean 20.09 6.188 230.7 146.7 3.597 3.217
3rd Qu. 22.80 8.000 326.0 180.0 3.920 3.610
Max. 33.90 8.000 472.0 335.0 4.930 5.424
$`2`
qsec vs am gear carb
Min. 14.50 0.0000 0.0000 3.000 1.000
1st Qu. 16.89 0.0000 0.0000 3.000 2.000
Median 17.71 0.0000 0.0000 4.000 2.000
Mean 17.85 0.4375 0.4062 3.688 2.812
3rd Qu. 18.90 1.0000 1.0000 4.000 4.000
Max. 22.90 1.0000 1.0000 5.000 8.000
3) 不转置 另一种减少宽度的方法是不转置它:
data.frame(unnest(DF), row.names = trimws(colnames(s)), check.names = FALSE)
给予:
Min. 1st Qu. Median Mean 3rd Qu. Max.
mpg 10.40 15.43 19.20 20.09 22.80 33.90
cyl 4.000 4.000 6.000 6.188 8.000 8.000
disp 71.1 120.8 196.3 230.7 326.0 472.0
hp 52.0 96.5 123.0 146.7 180.0 335.0
drat 2.760 3.080 3.695 3.597 3.920 4.930
wt 1.513 2.581 3.325 3.217 3.610 5.424
qsec 14.50 16.89 17.71 17.85 18.90 22.90
vs 0.0000 0.0000 0.0000 0.4375 1.0000 1.0000
am 0.0000 0.0000 0.0000 0.4062 1.0000 1.0000
gear 3.000 3.000 4.000 3.688 4.000 5.000
carb 1.000 2.000 2.000 2.812 4.000 8.000
4) psych::describe 一个简单的替代方法是使用 psynh::describe
library(psych)
describe(mtcars)
给予:
vars n mean sd median trimmed mad min max range skew kurtosis se
mpg 1 32 20.09 6.03 19.20 19.70 5.41 10.40 33.90 23.50 0.61 -0.37 1.07
cyl 2 32 6.19 1.79 6.00 6.23 2.97 4.00 8.00 4.00 -0.17 -1.76 0.32
disp 3 32 230.72 123.94 196.30 222.52 140.48 71.10 472.00 400.90 0.38 -1.21 21.91
hp 4 32 146.69 68.56 123.00 141.19 77.10 52.00 335.00 283.00 0.73 -0.14 12.12
drat 5 32 3.60 0.53 3.70 3.58 0.70 2.76 4.93 2.17 0.27 -0.71 0.09
wt 6 32 3.22 0.98 3.33 3.15 0.77 1.51 5.42 3.91 0.42 -0.02 0.17
qsec 7 32 17.85 1.79 17.71 17.83 1.42 14.50 22.90 8.40 0.37 0.34 0.32
vs 8 32 0.44 0.50 0.00 0.42 0.00 0.00 1.00 1.00 0.24 -2.00 0.09
am 9 32 0.41 0.50 0.00 0.38 0.00 0.00 1.00 1.00 0.36 -1.92 0.09
gear 10 32 3.69 0.74 4.00 3.62 1.48 3.00 5.00 2.00 0.53 -1.07 0.13
carb 11 32 2.81 1.62 2.00 2.65 1.48 1.00 8.00 7.00 1.05 1.26 0.29
5) Hmisc::describe hmisc还有一个描述函数:
library(Hmisc)
describe(mtcars)
给予:
mtcars
11 Variables 32 Observations
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
mpg
n missing distinct Info Mean Gmd .05 .10 .25 .50 .75 .90 .95
32 0 25 0.999 20.09 6.796 12.00 14.34 15.43 19.20 22.80 30.09 31.30
lowest : 10.4 13.3 14.3 14.7 15.0, highest: 26.0 27.3 30.4 32.4 33.9
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
cyl
n missing distinct Info Mean Gmd
32 0 3 0.866 6.188 1.948
Value 4 6 8
Frequency 11 7 14
Proportion 0.344 0.219 0.438
...etc...
6) skimr::skim 这是一个新包。它可以生成火花图形作为摘要输出的一部分;但是,这取决于字体支持,这可能很棘手,因此我们在下面禁用了该部分。请注意,skim
需要一个数据框作为输入,因此如果您的输入是矩阵,请使用 skim(as.data.frame(input))
.
library(skimr)
skim_with(numeric = list(hist = NULL)) # omit spark histogram
skim(mtcars)
给予:
Skim summary statistics
n obs: 32
n variables: 11
Variable type: numeric
variable missing complete n mean sd min p25 median p75 max
1 am 0 32 32 0.41 0.5 0 0 0 1 1
2 carb 0 32 32 2.81 1.62 1 2 2 4 8
3 cyl 0 32 32 6.19 1.79 4 4 6 8 8
4 disp 0 32 32 230.72 123.94 71.1 120.83 196.3 326 472
5 drat 0 32 32 3.6 0.53 2.76 3.08 3.7 3.92 4.93
6 gear 0 32 32 3.69 0.74 3 3 4 4 5
7 hp 0 32 32 146.69 68.56 52 96.5 123 180 335
8 mpg 0 32 32 20.09 6.03 10.4 15.43 19.2 22.8 33.9
9 qsec 0 32 32 17.85 1.79 14.5 16.89 17.71 18.9 22.9
10 vs 0 32 32 0.44 0.5 0 0 0 1 1
11 wt 0 32 32 3.22 0.98 1.51 2.58 3.33 3.61 5.42
如果您想尝试火花图形,请参阅:
7) pastecs::stat.desc pastecs包还有一个函数可以用:
stat.desc(mtcars)
给予:
mpg cyl disp hp drat wt qsec vs am gear carb
nbr.val 32.0000000 32.0000000 3.200000e+01 32.0000000 32.00000000 32.0000000 32.0000000 32.00000000 32.00000000 32.0000000 32.0000000
nbr.null 0.0000000 0.0000000 0.000000e+00 0.0000000 0.00000000 0.0000000 0.0000000 18.00000000 19.00000000 0.0000000 0.0000000
nbr.na 0.0000000 0.0000000 0.000000e+00 0.0000000 0.00000000 0.0000000 0.0000000 0.00000000 0.00000000 0.0000000 0.0000000
min 10.4000000 4.0000000 7.110000e+01 52.0000000 2.76000000 1.5130000 14.5000000 0.00000000 0.00000000 3.0000000 1.0000000
max 33.9000000 8.0000000 4.720000e+02 335.0000000 4.93000000 5.4240000 22.9000000 1.00000000 1.00000000 5.0000000 8.0000000
range 23.5000000 4.0000000 4.009000e+02 283.0000000 2.17000000 3.9110000 8.4000000 1.00000000 1.00000000 2.0000000 7.0000000
sum 642.9000000 198.0000000 7.383100e+03 4694.0000000 115.09000000 102.9520000 571.1600000 14.00000000 13.00000000 118.0000000 90.0000000
median 19.2000000 6.0000000 1.963000e+02 123.0000000 3.69500000 3.3250000 17.7100000 0.00000000 0.00000000 4.0000000 2.0000000
mean 20.0906250 6.1875000 2.307219e+02 146.6875000 3.59656250 3.2172500 17.8487500 0.43750000 0.40625000 3.6875000 2.8125000
SE.mean 1.0654240 0.3157093 2.190947e+01 12.1203173 0.09451874 0.1729685 0.3158899 0.08909831 0.08820997 0.1304266 0.2855297
CI.mean.0.95 2.1729465 0.6438934 4.468466e+01 24.7195501 0.19277224 0.3527715 0.6442617 0.18171719 0.17990541 0.2660067 0.5823417
var 36.3241028 3.1895161 1.536080e+04 4700.8669355 0.28588135 0.9573790 3.1931661 0.25403226 0.24899194 0.5443548 2.6088710
std.dev 6.0269481 1.7859216 1.239387e+02 68.5628685 0.53467874 0.9784574 1.7869432 0.50401613 0.49899092 0.7378041 1.6152000
coef.var 0.2999881 0.2886338 5.371779e-01 0.4674077 0.14866382 0.3041285 0.1001159 1.15203687 1.22828533 0.2000825 0.5742933
另一种可能性是分段创建 summary()
:
library(data.table)
for (x in split(i <- seq_along(mtcars), i %/% 4))
as.data.table(mtcars)[, print(summary(.SD)), .SDcols = x]
mpg cyl disp
Min. :10.40 Min. :4.000 Min. : 71.1
1st Qu.:15.43 1st Qu.:4.000 1st Qu.:120.8
Median :19.20 Median :6.000 Median :196.3
Mean :20.09 Mean :6.188 Mean :230.7
3rd Qu.:22.80 3rd Qu.:8.000 3rd Qu.:326.0
Max. :33.90 Max. :8.000 Max. :472.0
hp drat wt qsec
Min. : 52.0 Min. :2.760 Min. :1.513 Min. :14.50
1st Qu.: 96.5 1st Qu.:3.080 1st Qu.:2.581 1st Qu.:16.89
Median :123.0 Median :3.695 Median :3.325 Median :17.71
Mean :146.7 Mean :3.597 Mean :3.217 Mean :17.85
3rd Qu.:180.0 3rd Qu.:3.920 3rd Qu.:3.610 3rd Qu.:18.90
Max. :335.0 Max. :4.930 Max. :5.424 Max. :22.90
vs am gear carb
Min. :0.0000 Min. :0.0000 Min. :3.000 Min. :1.000
1st Qu.:0.0000 1st Qu.:0.0000 1st Qu.:3.000 1st Qu.:2.000
Median :0.0000 Median :0.0000 Median :4.000 Median :2.000
Mean :0.4375 Mean :0.4062 Mean :3.688 Mean :2.812
3rd Qu.:1.0000 3rd Qu.:1.0000 3rd Qu.:4.000 3rd Qu.:4.000
Max. :1.0000 Max. :1.0000 Max. :5.000 Max. :8.000
或者模拟OP的矩阵:
# create dummy data
mat <- matrix(1:17000, ncol = 17)
# set column names
colnames(mat) <- 1:17
# print summary piecewise
for (x in split(i <- seq_along(dt), i %/% 6))
print(summary(mat[, x]))
1 2 3 4 5
Min. : 1.0 Min. :1001 Min. :2001 Min. :3001 Min. :4001
1st Qu.: 250.8 1st Qu.:1251 1st Qu.:2251 1st Qu.:3251 1st Qu.:4251
Median : 500.5 Median :1500 Median :2500 Median :3500 Median :4500
Mean : 500.5 Mean :1500 Mean :2500 Mean :3500 Mean :4500
3rd Qu.: 750.2 3rd Qu.:1750 3rd Qu.:2750 3rd Qu.:3750 3rd Qu.:4750
Max. :1000.0 Max. :2000 Max. :3000 Max. :4000 Max. :5000
6 7 8 9 10 11
Min. :5001 Min. :6001 Min. :7001 Min. :8001 Min. : 9001 Min. :10001
1st Qu.:5251 1st Qu.:6251 1st Qu.:7251 1st Qu.:8251 1st Qu.: 9251 1st Qu.:10251
Median :5500 Median :6500 Median :7500 Median :8500 Median : 9500 Median :10500
Mean :5500 Mean :6500 Mean :7500 Mean :8500 Mean : 9500 Mean :10500
3rd Qu.:5750 3rd Qu.:6750 3rd Qu.:7750 3rd Qu.:8750 3rd Qu.: 9750 3rd Qu.:10750
Max. :6000 Max. :7000 Max. :8000 Max. :9000 Max. :10000 Max. :11000
12 13 14 15 16 17
Min. :11001 Min. :12001 Min. :13001 Min. :14001 Min. :15001 Min. :16001
1st Qu.:11251 1st Qu.:12251 1st Qu.:13251 1st Qu.:14251 1st Qu.:15251 1st Qu.:16251
Median :11500 Median :12500 Median :13500 Median :14500 Median :15500 Median :16500
Mean :11500 Mean :12500 Mean :13500 Mean :14500 Mean :15500 Mean :16500
3rd Qu.:11750 3rd Qu.:12750 3rd Qu.:13750 3rd Qu.:14750 3rd Qu.:15750 3rd Qu.:16750
Max. :12000 Max. :13000 Max. :14000 Max. :15000 Max. :16000 Max. :17000
请注意,在矩阵情况下,建议/要求明确设置列名。如果相应的矩阵属性 未设置 ,则 summary()
使用默认列名称,该名称始终从 V1
.
开始
所以我有一个暗淡的矩阵,它有 17 列和 1000 行(所有这些都是数字),然后我总结了矩阵,summary(matrix)
然后我得到了这些:
我的问题是:有没有办法把这些摘要table分成几个table?喜欢这些
V1 V2 V3 V4 V5 V6
Min
1st Qu
Median
Mean
3rd Qu
Max
V7 V8 V9 V10 V11 V12
Min
1st Qu
Median
Mean
3rd Qu
Max
V13 V14 V15 V16 V17
Min
1st Qu
Median
Mean
3rd Qu
Max
我需要在我的 R shiny 应用程序中维护 space 以显示这些矩阵,而不会使其显示像这些
注意:对不起,如果我只能说一张图片
1) read.dcf/unnest矩阵的元素是DCF形式所以我们可以使用read.dcf
然后unnest
:
library(tidyr)
s <- summary(mtcars)
DF <- read.dcf(textConnection(s), all = TRUE)
res <- setNames(data.frame(t(unnest(DF)), check.names = FALSE), trimws(colnames(s)))
给予:
> res
mpg cyl disp hp drat wt qsec vs am gear carb
Min. 10.40 4.000 71.1 52.0 2.760 1.513 14.50 0.0000 0.0000 3.000 1.000
1st Qu. 15.43 4.000 120.8 96.5 3.080 2.581 16.89 0.0000 0.0000 3.000 2.000
Median 19.20 6.000 196.3 123.0 3.695 3.325 17.71 0.0000 0.0000 4.000 2.000
Mean 20.09 6.188 230.7 146.7 3.597 3.217 17.85 0.4375 0.4062 3.688 2.812
3rd Qu. 22.80 8.000 326.0 180.0 3.920 3.610 18.90 1.0000 1.0000 4.000 4.000
Max. 33.90 8.000 472.0 335.0 4.930 5.424 22.90 1.0000 1.0000 5.000 8.000
2) 子集列 为了减少宽度,这可以分解为 res[1:6]
和 res[7:11]
或者更一般地,如果有 n
列,我们希望每组 k
列,最后一组除外:
n <- ncol(res)
k <- 6
g <- droplevels(gl(n, k, n)) # grouping vector
lapply(split(as.list(res), g), data.frame)
给予:
$`1`
mpg cyl disp hp drat wt
Min. 10.40 4.000 71.1 52.0 2.760 1.513
1st Qu. 15.43 4.000 120.8 96.5 3.080 2.581
Median 19.20 6.000 196.3 123.0 3.695 3.325
Mean 20.09 6.188 230.7 146.7 3.597 3.217
3rd Qu. 22.80 8.000 326.0 180.0 3.920 3.610
Max. 33.90 8.000 472.0 335.0 4.930 5.424
$`2`
qsec vs am gear carb
Min. 14.50 0.0000 0.0000 3.000 1.000
1st Qu. 16.89 0.0000 0.0000 3.000 2.000
Median 17.71 0.0000 0.0000 4.000 2.000
Mean 17.85 0.4375 0.4062 3.688 2.812
3rd Qu. 18.90 1.0000 1.0000 4.000 4.000
Max. 22.90 1.0000 1.0000 5.000 8.000
3) 不转置 另一种减少宽度的方法是不转置它:
data.frame(unnest(DF), row.names = trimws(colnames(s)), check.names = FALSE)
给予:
Min. 1st Qu. Median Mean 3rd Qu. Max.
mpg 10.40 15.43 19.20 20.09 22.80 33.90
cyl 4.000 4.000 6.000 6.188 8.000 8.000
disp 71.1 120.8 196.3 230.7 326.0 472.0
hp 52.0 96.5 123.0 146.7 180.0 335.0
drat 2.760 3.080 3.695 3.597 3.920 4.930
wt 1.513 2.581 3.325 3.217 3.610 5.424
qsec 14.50 16.89 17.71 17.85 18.90 22.90
vs 0.0000 0.0000 0.0000 0.4375 1.0000 1.0000
am 0.0000 0.0000 0.0000 0.4062 1.0000 1.0000
gear 3.000 3.000 4.000 3.688 4.000 5.000
carb 1.000 2.000 2.000 2.812 4.000 8.000
4) psych::describe 一个简单的替代方法是使用 psynh::describe
library(psych)
describe(mtcars)
给予:
vars n mean sd median trimmed mad min max range skew kurtosis se
mpg 1 32 20.09 6.03 19.20 19.70 5.41 10.40 33.90 23.50 0.61 -0.37 1.07
cyl 2 32 6.19 1.79 6.00 6.23 2.97 4.00 8.00 4.00 -0.17 -1.76 0.32
disp 3 32 230.72 123.94 196.30 222.52 140.48 71.10 472.00 400.90 0.38 -1.21 21.91
hp 4 32 146.69 68.56 123.00 141.19 77.10 52.00 335.00 283.00 0.73 -0.14 12.12
drat 5 32 3.60 0.53 3.70 3.58 0.70 2.76 4.93 2.17 0.27 -0.71 0.09
wt 6 32 3.22 0.98 3.33 3.15 0.77 1.51 5.42 3.91 0.42 -0.02 0.17
qsec 7 32 17.85 1.79 17.71 17.83 1.42 14.50 22.90 8.40 0.37 0.34 0.32
vs 8 32 0.44 0.50 0.00 0.42 0.00 0.00 1.00 1.00 0.24 -2.00 0.09
am 9 32 0.41 0.50 0.00 0.38 0.00 0.00 1.00 1.00 0.36 -1.92 0.09
gear 10 32 3.69 0.74 4.00 3.62 1.48 3.00 5.00 2.00 0.53 -1.07 0.13
carb 11 32 2.81 1.62 2.00 2.65 1.48 1.00 8.00 7.00 1.05 1.26 0.29
5) Hmisc::describe hmisc还有一个描述函数:
library(Hmisc)
describe(mtcars)
给予:
mtcars
11 Variables 32 Observations
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
mpg
n missing distinct Info Mean Gmd .05 .10 .25 .50 .75 .90 .95
32 0 25 0.999 20.09 6.796 12.00 14.34 15.43 19.20 22.80 30.09 31.30
lowest : 10.4 13.3 14.3 14.7 15.0, highest: 26.0 27.3 30.4 32.4 33.9
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
cyl
n missing distinct Info Mean Gmd
32 0 3 0.866 6.188 1.948
Value 4 6 8
Frequency 11 7 14
Proportion 0.344 0.219 0.438
...etc...
6) skimr::skim 这是一个新包。它可以生成火花图形作为摘要输出的一部分;但是,这取决于字体支持,这可能很棘手,因此我们在下面禁用了该部分。请注意,skim
需要一个数据框作为输入,因此如果您的输入是矩阵,请使用 skim(as.data.frame(input))
.
library(skimr)
skim_with(numeric = list(hist = NULL)) # omit spark histogram
skim(mtcars)
给予:
Skim summary statistics
n obs: 32
n variables: 11
Variable type: numeric
variable missing complete n mean sd min p25 median p75 max
1 am 0 32 32 0.41 0.5 0 0 0 1 1
2 carb 0 32 32 2.81 1.62 1 2 2 4 8
3 cyl 0 32 32 6.19 1.79 4 4 6 8 8
4 disp 0 32 32 230.72 123.94 71.1 120.83 196.3 326 472
5 drat 0 32 32 3.6 0.53 2.76 3.08 3.7 3.92 4.93
6 gear 0 32 32 3.69 0.74 3 3 4 4 5
7 hp 0 32 32 146.69 68.56 52 96.5 123 180 335
8 mpg 0 32 32 20.09 6.03 10.4 15.43 19.2 22.8 33.9
9 qsec 0 32 32 17.85 1.79 14.5 16.89 17.71 18.9 22.9
10 vs 0 32 32 0.44 0.5 0 0 0 1 1
11 wt 0 32 32 3.22 0.98 1.51 2.58 3.33 3.61 5.42
如果您想尝试火花图形,请参阅:
7) pastecs::stat.desc pastecs包还有一个函数可以用:
stat.desc(mtcars)
给予:
mpg cyl disp hp drat wt qsec vs am gear carb
nbr.val 32.0000000 32.0000000 3.200000e+01 32.0000000 32.00000000 32.0000000 32.0000000 32.00000000 32.00000000 32.0000000 32.0000000
nbr.null 0.0000000 0.0000000 0.000000e+00 0.0000000 0.00000000 0.0000000 0.0000000 18.00000000 19.00000000 0.0000000 0.0000000
nbr.na 0.0000000 0.0000000 0.000000e+00 0.0000000 0.00000000 0.0000000 0.0000000 0.00000000 0.00000000 0.0000000 0.0000000
min 10.4000000 4.0000000 7.110000e+01 52.0000000 2.76000000 1.5130000 14.5000000 0.00000000 0.00000000 3.0000000 1.0000000
max 33.9000000 8.0000000 4.720000e+02 335.0000000 4.93000000 5.4240000 22.9000000 1.00000000 1.00000000 5.0000000 8.0000000
range 23.5000000 4.0000000 4.009000e+02 283.0000000 2.17000000 3.9110000 8.4000000 1.00000000 1.00000000 2.0000000 7.0000000
sum 642.9000000 198.0000000 7.383100e+03 4694.0000000 115.09000000 102.9520000 571.1600000 14.00000000 13.00000000 118.0000000 90.0000000
median 19.2000000 6.0000000 1.963000e+02 123.0000000 3.69500000 3.3250000 17.7100000 0.00000000 0.00000000 4.0000000 2.0000000
mean 20.0906250 6.1875000 2.307219e+02 146.6875000 3.59656250 3.2172500 17.8487500 0.43750000 0.40625000 3.6875000 2.8125000
SE.mean 1.0654240 0.3157093 2.190947e+01 12.1203173 0.09451874 0.1729685 0.3158899 0.08909831 0.08820997 0.1304266 0.2855297
CI.mean.0.95 2.1729465 0.6438934 4.468466e+01 24.7195501 0.19277224 0.3527715 0.6442617 0.18171719 0.17990541 0.2660067 0.5823417
var 36.3241028 3.1895161 1.536080e+04 4700.8669355 0.28588135 0.9573790 3.1931661 0.25403226 0.24899194 0.5443548 2.6088710
std.dev 6.0269481 1.7859216 1.239387e+02 68.5628685 0.53467874 0.9784574 1.7869432 0.50401613 0.49899092 0.7378041 1.6152000
coef.var 0.2999881 0.2886338 5.371779e-01 0.4674077 0.14866382 0.3041285 0.1001159 1.15203687 1.22828533 0.2000825 0.5742933
另一种可能性是分段创建 summary()
:
library(data.table)
for (x in split(i <- seq_along(mtcars), i %/% 4))
as.data.table(mtcars)[, print(summary(.SD)), .SDcols = x]
mpg cyl disp Min. :10.40 Min. :4.000 Min. : 71.1 1st Qu.:15.43 1st Qu.:4.000 1st Qu.:120.8 Median :19.20 Median :6.000 Median :196.3 Mean :20.09 Mean :6.188 Mean :230.7 3rd Qu.:22.80 3rd Qu.:8.000 3rd Qu.:326.0 Max. :33.90 Max. :8.000 Max. :472.0 hp drat wt qsec Min. : 52.0 Min. :2.760 Min. :1.513 Min. :14.50 1st Qu.: 96.5 1st Qu.:3.080 1st Qu.:2.581 1st Qu.:16.89 Median :123.0 Median :3.695 Median :3.325 Median :17.71 Mean :146.7 Mean :3.597 Mean :3.217 Mean :17.85 3rd Qu.:180.0 3rd Qu.:3.920 3rd Qu.:3.610 3rd Qu.:18.90 Max. :335.0 Max. :4.930 Max. :5.424 Max. :22.90 vs am gear carb Min. :0.0000 Min. :0.0000 Min. :3.000 Min. :1.000 1st Qu.:0.0000 1st Qu.:0.0000 1st Qu.:3.000 1st Qu.:2.000 Median :0.0000 Median :0.0000 Median :4.000 Median :2.000 Mean :0.4375 Mean :0.4062 Mean :3.688 Mean :2.812 3rd Qu.:1.0000 3rd Qu.:1.0000 3rd Qu.:4.000 3rd Qu.:4.000 Max. :1.0000 Max. :1.0000 Max. :5.000 Max. :8.000
或者模拟OP的矩阵:
# create dummy data
mat <- matrix(1:17000, ncol = 17)
# set column names
colnames(mat) <- 1:17
# print summary piecewise
for (x in split(i <- seq_along(dt), i %/% 6))
print(summary(mat[, x]))
1 2 3 4 5 Min. : 1.0 Min. :1001 Min. :2001 Min. :3001 Min. :4001 1st Qu.: 250.8 1st Qu.:1251 1st Qu.:2251 1st Qu.:3251 1st Qu.:4251 Median : 500.5 Median :1500 Median :2500 Median :3500 Median :4500 Mean : 500.5 Mean :1500 Mean :2500 Mean :3500 Mean :4500 3rd Qu.: 750.2 3rd Qu.:1750 3rd Qu.:2750 3rd Qu.:3750 3rd Qu.:4750 Max. :1000.0 Max. :2000 Max. :3000 Max. :4000 Max. :5000 6 7 8 9 10 11 Min. :5001 Min. :6001 Min. :7001 Min. :8001 Min. : 9001 Min. :10001 1st Qu.:5251 1st Qu.:6251 1st Qu.:7251 1st Qu.:8251 1st Qu.: 9251 1st Qu.:10251 Median :5500 Median :6500 Median :7500 Median :8500 Median : 9500 Median :10500 Mean :5500 Mean :6500 Mean :7500 Mean :8500 Mean : 9500 Mean :10500 3rd Qu.:5750 3rd Qu.:6750 3rd Qu.:7750 3rd Qu.:8750 3rd Qu.: 9750 3rd Qu.:10750 Max. :6000 Max. :7000 Max. :8000 Max. :9000 Max. :10000 Max. :11000 12 13 14 15 16 17 Min. :11001 Min. :12001 Min. :13001 Min. :14001 Min. :15001 Min. :16001 1st Qu.:11251 1st Qu.:12251 1st Qu.:13251 1st Qu.:14251 1st Qu.:15251 1st Qu.:16251 Median :11500 Median :12500 Median :13500 Median :14500 Median :15500 Median :16500 Mean :11500 Mean :12500 Mean :13500 Mean :14500 Mean :15500 Mean :16500 3rd Qu.:11750 3rd Qu.:12750 3rd Qu.:13750 3rd Qu.:14750 3rd Qu.:15750 3rd Qu.:16750 Max. :12000 Max. :13000 Max. :14000 Max. :15000 Max. :16000 Max. :17000
请注意,在矩阵情况下,建议/要求明确设置列名。如果相应的矩阵属性 未设置 ,则 summary()
使用默认列名称,该名称始终从 V1
.