首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >摘要格式

摘要格式
EN

Stack Overflow用户
提问于 2020-10-25 20:24:37
回答 1查看 31关注 0票数 0

summary()函数的正常输出如下:

代码语言:javascript
运行
复制
> summary(iris[, -5])
  Sepal.Length    Sepal.Width     Petal.Length    Petal.Width   
 Min.   :4.300   Min.   :2.000   Min.   :1.000   Min.   :0.100  
 1st Qu.:5.100   1st Qu.:2.800   1st Qu.:1.600   1st Qu.:0.300  
 Median :5.800   Median :3.000   Median :4.350   Median :1.300  
 Mean   :5.843   Mean   :3.057   Mean   :3.758   Mean   :1.199  
 3rd Qu.:6.400   3rd Qu.:3.300   3rd Qu.:5.100   3rd Qu.:1.800  
 Max.   :7.900   Max.   :4.400   Max.   :6.900   Max.   :2.500       

我想转置它,然后把它放到一个数据帧中,所以我这样做了:

代码语言:javascript
运行
复制
> trans <- as.data.frame(t(as.matrix(unclass(summary(iris[, -5])))))
> trans
                           V1              V2              V3              V4              V5
 Sepal.Length Min.   :4.300   1st Qu.:5.100   Median :5.800   Mean   :5.843   3rd Qu.:6.400  
 Sepal.Width  Min.   :2.000   1st Qu.:2.800   Median :3.000   Mean   :3.057   3rd Qu.:3.300  
 Petal.Length Min.   :1.000   1st Qu.:1.600   Median :4.350   Mean   :3.758   3rd Qu.:5.100  
 Petal.Width  Min.   :0.100   1st Qu.:0.300   Median :1.300   Mean   :1.199   3rd Qu.:1.800  
                           V6
 Sepal.Length Max.   :7.900  
 Sepal.Width  Max.   :4.400  
 Petal.Length Max.   :6.900  
 Petal.Width  Max.   :2.500  

现在问题来了。我认为,更符合逻辑的格式应该是:

代码语言:javascript
运行
复制
> trans <- cbind(rownames(trans), trans)
> rownames(trans) <- NULL
> colnames(trans) <- c("Treatment", "Minimum", "1st Quartile", "Median", "Mean", "3rd Quartile", "Maximum")
> trans
      Treatment         Minimum    1st Quartile          Median            Mean    3rd Quartile
1  Sepal.Length Min.   :4.300   1st Qu.:5.100   Median :5.800   Mean   :5.843   3rd Qu.:6.400  
2   Sepal.Width Min.   :2.000   1st Qu.:2.800   Median :3.000   Mean   :3.057   3rd Qu.:3.300  
3  Petal.Length Min.   :1.000   1st Qu.:1.600   Median :4.350   Mean   :3.758   3rd Qu.:5.100  
4   Petal.Width Min.   :0.100   1st Qu.:0.300   Median :1.300   Mean   :1.199   3rd Qu.:1.800  
          Maximum
1 Max.   :7.900  
2 Max.   :4.400  
3 Max.   :6.900  
4 Max.   :2.500  

但是,如您所见,每个单元格中的列名都是重复的。这是一件非常没有吸引力的事情。因此,我的问题是,是否可以从data.frame中删除此部分,只留下以下内容:

代码语言:javascript
运行
复制
      Treatment         Minimum    1st Quartile          Median            Mean    3rd Quartile
1  Sepal.Length         4.300      5.100                 5.800            5.843      6.400  
2  Sepal.Width          2.000      2.800                 3.000            3.057      3.300  
3  Petal.Length         1.000      1.600                 4.350            3.758      5.100  
4  Petal.Width          0.100      0.300                 1.300            1.199      1.800  
          Maximum
1          7.900  
2          4.400  
3          6.900  
4          2.500  

这样做的一个好处是,我的data.frame将是数字的(可能),以及整体更整洁。我该怎么做呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-25 20:33:15

有几个包允许您以这种方式汇总数据。例如,我的modelsummary package (自我推广警报!)允许您执行以下操作:

代码语言:javascript
运行
复制
library(modelsummary)

datasummary(All(iris) ~ Min + P25 + P50 + Mean + P75 + Max, 
            data = iris,
            output = "data.frame")
#>                 Min  P25  P50 Mean  P75  Max
#> 1 Sepal.Length 4.30 5.10 5.80 5.84 6.40 7.90
#> 2  Sepal.Width 2.00 2.80 3.00 3.06 3.30 4.40
#> 3 Petal.Length 1.00 1.60 4.35 3.76 5.10 6.90
#> 4  Petal.Width 0.10 0.30 1.30 1.20 1.80 2.50

删除output参数将生成一个如下所示的HTML表:

并将其称为:

代码语言:javascript
运行
复制
datasummary_skim(iris)

生成以下内容:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64523641

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档