所以我有一个矩阵,dim是17 cols和1000行(全部都是数字),然后我汇总矩阵,summary(matrix)
然后我得到了这些:
我的问题是:无论如何将这些汇总表拆分成几张表?喜欢这些
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闪亮应用程序中保持空间,以便显示这些矩阵,而不会让它显示相互碰撞
注意:对不起,如果我能说的只是一张照片
答案 0 :(得分:3)
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}}列,但可能是最后一组:
$`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
,并提供:
data.frame(unnest(DF), row.names = trimws(colnames(s)), check.names = FALSE)
3)没有转置减少宽度的另一种方法是不转置它:
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
,并提供:
psynh::describe
4)psych :: 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
,并提供:
library(Hmisc)
describe(mtcars)
5)Hmisc :: describe Hmisc也有一个describe函数:
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...
,并提供:
skim
6)skimr :: 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
,并提供:
stat.desc(mtcars)
如果您想尝试火花图形,请参阅:Skimr - cant seem to produce the histograms
7)pastecs :: stat.desc pastecs包还有一个可以使用的功能:
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
,并提供:
CREATE TABLE "TEST_T"
(
"ID" NUMBER GENERATED ALWAYS AS IDENTITY MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER NOCYCLE ,
"PARENT" NUMBER,
"SESSION_ID" NUMBER,
"DATA" VARCHAR2(2000 BYTE)
)
Insert into TEST_T (ID,PARENT,SESSION_ID,DATA) values (1,1,100,'test');
Insert into TEST_T (ID,PARENT,SESSION_ID,DATA) values (3,2,100,'test2');
Insert into TEST_T (ID,PARENT,SESSION_ID,DATA) values (4,33,100,'test3');
答案 1 :(得分:0)
另一种可能性是分段创建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
开始的默认列名。