我如何只使用一行来获取“R”中该特定行的分位数

Posted

技术标签:

【中文标题】我如何只使用一行来获取“R”中该特定行的分位数【英文标题】:How would I only work with one row to get quantiles of that specific row in "R" 【发布时间】:2022-01-09 07:51:11 【问题描述】:

我想获取数据集的前 5% 和 10% + 后 5% 和 10%,但针对特定行“TOTINCP”

当前代码:


library("tidyverse")
data1 <- read_csv("1986Census.csv", col_names = TRUE)
attach(data1)
ls(data1)

dropped <- subset(data1, 26 <= AGEP & AGEP <= 64 & (TOTINCP >= 0 & TOTINCP <= max(TOTINCP)) & MARSTP != 1 & MARSTP != 5)

#male and female after dropped observations
male <- subset(dropped, SEXP == 2)
female <- subset(dropped, SEXP == 1)
incomeMale <- c(male, TOTINCP) 
quantile(incomeMale, 0.05,0.10,0.95,0.90)

incomeMale &lt;- c(male, TOTINCP)

我尝试将incomeMale 设为子集,但它的作用相同,有人有吗?解决方案?谢谢!

【问题讨论】:

(1) 请不要在关于 SO 的问题中包含 rm(list = ls())。 (2) 通常最好用不必要的代码来减少问题。在这种情况下,setwdread_csv 对我们没有好处,因为我们无法访问您的计算机(我们也不应该:-)。 (3) 旁注:通常强烈反对使用attach(.),因为它经常会导致很多问题。虽然它的使用增加了一点实用性/便利性,但它引入了许多问题的可能性,并且不鼓励更好地理解 R 的结构。 此外,由于我们没有您的数据,因此可能更难提供真正的帮助。很高兴您已包含此代码(大部分 :-),请使用示例数据对其进行改进(最好来自 dput(x),其中 x 是具有代表性且足够的示例,我们很少需要所有列和所有行)。 在代码中我只想从子集中提取一个特定的行值male 【参考方案1】:

我所要做的就是进入 male subset 的列表位置 TOTINCP 并将所有这些值放入一个数字向量中。

#male and female after dropped observations
male <- subset(dropped, SEXP == 2)
female <- subset(dropped, SEXP == 1)

#male bottom and top earners
incomeMale <- c(male[["TOTINCP"]])
quantile(incomeMale, c(0.01,0.05, 0.10,0.95, 0.99))

【讨论】:

以上是关于我如何只使用一行来获取“R”中该特定行的分位数的主要内容,如果未能解决你的问题,请参考以下文章

用R语言的quantreg包进行分位数回归

R语言箱线图(boxplot)四分位算法

如何估计R中的分位数回归预测

如何获取所有行的 QuerySet,每一行都有特定的字段?

熊猫数据帧的分位数归一化

如何获取数据集行的特定版本?