Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 计算变量排序_R_Dplyr - Fatal编程技术网

R 计算变量排序

R 计算变量排序,r,dplyr,R,Dplyr,我正在使用Ecdat软件包中的香烟数据集。我需要找出1985年至1995年期间,包装数量/人均销售量的年排名中位数。以及最低的,即更高的等级被定义为拥有更多的包/人均 我尝试过根据年份进行过滤,并使用中位数(packpc)计算中位数packs变量,并按该变异变量进行排列,但仍然会得到错误消息 有什么建议吗?你想要的是总结: library(Ecdat) library(dplyr) Cigarette %>% filter(year>=1985, year<=1995)

我正在使用
Ecdat
软件包中的
香烟
数据集。我需要找出1985年至1995年期间,包装数量/人均销售量的年排名中位数。以及最低的,即更高的等级被定义为拥有更多的包/人均

我尝试过根据年份进行过滤,并使用中位数(packpc)计算中位数packs变量,并按该变异变量进行排列,但仍然会得到错误消息


有什么建议吗?

你想要的是
总结

library(Ecdat)
library(dplyr)
Cigarette %>% 
  filter(year>=1985, year<=1995) %>% 
  summarise(min=min(packpc), median=median(packpc), max=max(packpc))
#>       min   median     max
#> 1 49.2722 105.9096 197.994
库(Ecdat)
图书馆(dplyr)
香烟%>%
过滤器(年份>=1985,年份%
总结(最小值=最小值(packpc),中值=中值(packpc),最大值=最大值(packpc))
#>最小中值最大值
#> 1 49.2722 105.9096 197.994
当您将
dplyr
标记添加到此问题时,您可能需要查看此软件包的教程


PS:如果这是你的家庭作业,你应该把它说清楚,这样我们就不会只给出答案。

我想这个想法是要得到各州每年的排名,然后找出这些年排名的中位数和最小值

由于数据集仅包括1985年至1995年,因此不需要
筛选
ing

所以我想出了一个相当丑陋的解决方案:

ranks_perYear <- aggregate(packpc ~ year, Cigarette, rank)$packpc
colnames(ranks_perYear) <- levels(Cigarette$state)
medianRank <- apply(ranks_perYear, 2, median)
minRank <- apply(ranks_perYear, 2, min)
ranks_perYear什么是“年排名中位数”?如果你有100个观察结果,并对它们进行任何排序,中位数是50。