如何基于 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
我根据分位数函数创建了 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