如何基于 R 中的多个变量创建数据表?

How to create a datatable based on multiple variables in R?

我根据分位数函数创建了 6 个变量(我在默认数量“0.25、.5 和 .75”的基础上创建了不同的分位数。我想创建一个摘要 table 类似于下面的输出,但有我的变量。任何帮助将不胜感激。

我使用 cbind 将所有变量合并到 table 中,但格式已关闭。


ten_quantile = quantile(tt$HPTACC, probs = .1)
twenty_quantile = quantile(tt$HPTACC, probs = .2)
thirty_quantile = quantile(tt$HPTACC, probs = .3)
med = quantile(tt$HPTACC, probs = .5)
sixty_quantile = quantile(tt$HPTACC, probs = .6)
upper = quantile(tt$HPTACC, probs = .75)


rr <- cbind(ten_quantile, twenty_quantile, thirty_quantile, med, sixty_quantile, upper)
rr

ten_quantile twenty_quantile thirty_quantile   med sixty_quantile   upper
10%       7172.1        17137.72         22099.3 29542          32302 35864.5

但是我想要这样的东西,但是有额外的分位数:


Sfttime <- quantile(tt$HPTACC)


## Create quantile soft time into df ##
SummaryTable <- data.frame(
  Sfttime)

      Sfttime
0%        0.00
10%   #
20%   #
25%   20072.25
35%   #
50%   29542.00
60%   #
75%   35864.50
100% 889368.00

我认为您可以使用 quantile() 函数。您可以在 probs 参数中配置值。我将使用 mtcars 作为示例,但它应该适用于您的数据

QuantData <- quantile(mtcars$drat)
QuantData <- as.data.frame(QuantData)

Result <- data.frame(Quantile = row.names(QuantData), 
                     Value = QuantData[,1])

QuantData <- quantile(mtcars$drat, 
                      probs = c(0,0.1,0.20,0.25,0.35,0.5,0.6,0.75,1))
QuantData <- as.data.frame(QuantData)

Result <- data.frame(Quantile = row.names(QuantData), 
                     Value = QuantData[,1])

最简单的答案是使用 dplyr 的 enframe:

quantile(tt$HPTACC, c(0,0.1,0.20,0.25,0.35,0.5,0.6,0.75,1)) %>% 
  enframe(name = "quantile")

以mtcar的mpg为例,输出结果如下:

> quantile(mtcars$mpg, c(0,0.1,0.20,0.25,0.35,0.5,0.6,0.75,1)) %>% 
+   enframe(name = "quantile")
# A tibble: 9 x 2
  quantile value
  <chr>    <dbl>
1 0%        10.4
2 10%       14.3
3 20%       15.2
4 25%       15.4
5 35%       17.2
6 50%       19.2
7 60%       21  
8 75%       22.8
9 100%      33.9