我如何只使用一行来获取“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 <- c(male, TOTINCP)
我尝试将incomeMale
设为子集,但它的作用相同,有人有吗?解决方案?谢谢!
【问题讨论】:
(1) 请不要在关于 SO 的问题中包含rm(list = ls())
。 (2) 通常最好用不必要的代码来减少问题。在这种情况下,setwd
和 read_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”中该特定行的分位数的主要内容,如果未能解决你的问题,请参考以下文章