将变量添加到R中的数据帧并按所述变量排序

将变量添加到R中的数据帧并按所述变量排序,r,dplyr,R,Dplyr,我正在使用Ecdat库中的香烟数据框。我试图首先通过dplyr使用变异函数在数据框架中创建一个变量,即人均收入(即收入/人口)。然后我想按州人均个人收入(即州人口)对数据进行排名,这样排名为1的行的人均收入最高 似乎我可以使用:mutate(香烟,收入\人口=收入/流行音乐)创建变量。虽然在指定按新收入人群进行排名时,排名函数似乎不起作用 有什么建议吗?给出完整的香烟数据集(): 库(dplyr) 香烟%>% 突变(收入人口=收入/pop)%>% 安排(描述(收入人口))%>% 头(.) #州年

我正在使用
Ecdat
库中的
香烟
数据框。我试图首先通过dplyr使用变异函数在数据框架中创建一个变量,即人均收入(即收入/人口)。然后我想按州人均个人收入(即州人口)对数据进行排名,这样排名为1的行的人均收入最高

似乎我可以使用:mutate(香烟,收入\人口=收入/流行音乐)创建变量。虽然在指定按新收入人群进行排名时,排名函数似乎不起作用


有什么建议吗?

给出完整的
香烟
数据集():

库(dplyr)
香烟%>%
突变(收入人口=收入/pop)%>%
安排(描述(收入人口))%>%
头(.)
#州年度cpi pop packpc所得税avgprs税收收入人口
#1 CT 1995 1.524 3265293 79.47219 104315120 74.00 218.2805 86.35550 31.94663
#2 CT 1994 1.482 3268346 77.62336 99787808 71.00 215.9573 83.22400 30.53159
#3 CT 1993 1.445 3272325 79.79036 96866467.00 214.8885 79.16350 29.60172
#4 NJ 1995 1.524 7965523 80.37137 233208576 64.00 203.0872 75.49550 29.27725
#5 CT 1992 1.403 3274997 84.24435 93778704 63.75 209.2263 75.59300 28.63475
#6 MA 1995 1.524 6062335 76.62064 170051568 75.00 217.1050 85.33833 28.05051

较小的数据:

#dput(头(香烟))
结构(列表)状态=结构(1:6,.标签=c(“AL”、“AR”、“AZ”、“CA”、“CO”、“CT”、“DE”、“FL”、“GA”、“IA”、“ID”、“IL”、“IN”、“KS”、“KY”、“LA”、“MA”、“MD”、“ME”、“MI”、“MN”、“MO”、“MS”、“MT”、“NC”、“ND”、“NE”、“NH”、“NJ”、“NM”、“NV”、“NY”、“OH”、“OK”、“OR”、“PA”、“RI”、“SC”、“SD”、“TN”、“TX”、“UT”、“VA”、“VT”、“WA”、“WI”、“WV”、“WY”),类别=“系数”),年份=c(1985L,1985L,1985L,1985L,1985L,1985L),cpi=c(1.07599997520447,1.07599997520447,1.07599997520447,1.07599997520447,1.07599997520447,1.07599997520447),pop=c(3973000L,2327000L,3184000L,2644000L,32090000L,3201000L),packpc=c(116.486282348633,128.534591674805,104.522613525391,100.363037109375,112.963539123535109.278350830078),收入=c(46014968L,26210736L,4395636L,447102816L,49466672L,60063368L),税收=c(32.5000038146973,37,31,26,31,42),平均税率=c(102.181671142578,101.474998474121,108.578750610352,107.837341308594,94.2666625976563128.024993896484),taxs=c(33.3483352661133,37,36.1704177856445,32.1040000915527,31,51.4833335876465),row.name=c(“1”,“2”,“3”,“4”,“5”,“6”),class=“data.frame”)
以及根据简化数据得出的结果:

头(香烟)%%>%
突变(收入人口=收入/pop)%>%
安排(描述(收入和人口))
#州年度cpi pop packpc所得税avgprs税收收入人口
#1 CT 1985 1.076 3201000 109.2784 60063368 42.0 128.02499 51.48333 18.76394
#2 CA 1985 1.076 2644000 100.3630 447102816 26.0 107.83734 32.10400 16.90753
#3 CO 1985 1.076 3209000 112.9635 49466672 31.0 94.26666 31.0000015.41498
#4 AZ 1985 1.076 3184000 104.5226 43956936 31.0 108.57875 36.17042 13.80557
#5 AL 1985 1.076 3973000 116.4863 46014968 32.5 102.18167 33.34834 11.58192
#6 AR 1985 1.076 2327000 128.5346 26210736 37.0 101.47500 37.0000011.26375

假设您确实想要添加一个包含秩的变量,并且1是最高位(为了清晰起见,显示的列少于所有列,仅显示前10行)

库(Ecdat)
图书馆(dplyr)
香烟%>%
突变(收入人口=收入/pop)%>%
安排(描述(收入人口))%>%
突变(inc_pop_rank=行数(-inc_pop_popular))%>%
切片(1:10)%>%
选择(州、年、收入、人口、公司、流行排名)
州年度收入人口公司流行排名
1 CT 1995 31.94663 1
2 CT 1994 30.53159 2
3 CT 1993 29.60172 3
4 NJ 1995 29.27725 4
5 CT 1992 28.63475 5
6 MA 1995 28.05051 6
7 NJ 1994 27.88522 7
8纽约1995 27.72108 8
9 NJ 1993 27.10118 9
10马里兰州1995 26.89587 10

您能否使用dput()@sehoskins分享可复制的示例这似乎是
安排(香烟、收入和人口)的工作