根据总R创建百分位数
我试图把我的数据分成百分位数。首先,这里是一些示例数据:根据总R创建百分位数,r,percentile,R,Percentile,我试图把我的数据分成百分位数。首先,这里是一些示例数据: df <- data.frame( employee.first.name = c ('Jim', 'John', 'James', 'Jack', 'Jill', 'Kathy', 'Kim', 'Kelly', 'Karl', 'Larry', 'Lemon', 'Lime', 'Man', 'Mark', 'Mary
df <- data.frame(
employee.first.name = c ('Jim', 'John', 'James', 'Jack', 'Jill', 'Kathy',
'Kim', 'Kelly', 'Karl', 'Larry', 'Lemon', 'Lime',
'Man', 'Mark', 'Mary', 'Miss', 'Molly',
'Matthew', 'Nancy', 'Nelly'),
week.pay = c(401, 70, 58, 130, 483, 464, 84, 327, 208,
254, 306, 393, 270, 54, 279, 390, 144,
97, 125, 403
)
)
我想按工资总额的百分比分成四分之一。例如,在上面的数据中,总工资的25%是1235。做一些计算,我可以发现,如果我们看一周工资总额在1-255范围内,我们大约回到25%的数额
我想知道每个四分位数的工资范围。如何在R中快速完成此任务
对不起,我的标题不好——似乎无法恰当地表达我想要什么。假期后的星期一早上,周末不太好:)
谢谢 我相信你想要达到的目标是
cut(
x = df$week.pay
, breaks = quantile(
df$week.pay
, probs = seq(0, 1, 0.25)
, names = FALSE
, type = 7)
, include.lowest = TRUE
)
带有此probs
参数的quantile
函数将为您计算四分位数。随后,cut
将根据这些四分位数更改初始数据向量
注意分位数/四分位数的计算方法的
类型
参数。我相信您试图实现的是
cut(
x = df$week.pay
, breaks = quantile(
df$week.pay
, probs = seq(0, 1, 0.25)
, names = FALSE
, type = 7)
, include.lowest = TRUE
)
带有此probs
参数的quantile
函数将为您计算四分位数。随后,cut
将根据这些四分位数更改初始数据向量
注意分位数/四分位数的计算方法的
类型
参数。我想你问的是累积工资的四分位数。正如你所注意到的,我们需要把工资总额除以四,得到四分位数。这样我们就可以得到工资的四分位数:
sorted.pay <- sort(df$week.pay)
cum.pay <- cumsum(sorted.pay)
brk <- floor(cum.pay/(sum(sorted.pay/4)))
brk <- ifelse(brk > 3, 3, brk) # Include highest pay in 4th group
sapply(split(sorted.pay, brk), range)
# 0 1 2 3
# [1,] 54 270 390 403 # Min
# [2,] 254 327 401 483 # Max
table(brk)
# brk
# 0 1 2 3
# 10 4 3 3
sorted.pay我想你问的是累计工资的四分位数。正如你所注意到的,我们需要把工资总额除以四,得到四分位数。这样我们就可以得到工资的四分位数:
sorted.pay <- sort(df$week.pay)
cum.pay <- cumsum(sorted.pay)
brk <- floor(cum.pay/(sum(sorted.pay/4)))
brk <- ifelse(brk > 3, 3, brk) # Include highest pay in 4th group
sapply(split(sorted.pay, brk), range)
# 0 1 2 3
# [1,] 54 270 390 403 # Min
# [2,] 254 327 401 483 # Max
table(brk)
# brk
# 0 1 2 3
# 10 4 3 3
sorted.pay