R 为什么等级功能给予所有国家同等的等级?

R 为什么等级功能给予所有国家同等的等级?,r,dplyr,R,Dplyr,我在问一个已经得到回答的问题:。但由于一些奇怪的原因,该方法无法处理我的数据。我正在按国家对这两个时期的失业率差异进行排名 我建议使用此代码: df %>% mutate(rank = dense_rank(desc(difference))) 但我在所有国家的排名都是1。有人能告诉我出了什么问题吗 以下是我的数据: structure(list(cntry = structure(1:23, .Label = c("Austria", "Belgium&

我在问一个已经得到回答的问题:。但由于一些奇怪的原因,该方法无法处理我的数据。我正在按国家对这两个时期的失业率差异进行排名

我建议使用此代码:

df %>% mutate(rank = dense_rank(desc(difference)))
但我在所有国家的排名都是1。有人能告诉我出了什么问题吗

以下是我的数据:

structure(list(cntry = structure(1:23, .Label = c("Austria", 
"Belgium", "Switzerland", "Czech Republic", "Germany", "Denmark", 
"Estonia", "Greece", "Spain", "Finland", "France", "Hungary", 
"Ireland", "Iceland", "Italy", "Luxembourg", "Netherlands", "Norway", 
"Poland", "Portugal", "Sweden", "Slovakia", "United Kingdom"), class = "factor"), 
    difference = c(0.0321271618815491, -0.0251554839428438, 1.15072942999273, 
    1.33128598731325, -2.26400160811014, 3.15779980836141, 6.80457896869579, 
    6.70389987400804, 10.8919891165462, 0.547460084552159, 0.906834874234579, 
    3.01112447330944, 8.5885631447415, 3.75206570820895, 1.58794503937105, 
    0.334356006591187, 0.664766564981566, 0.0155501469693973, 
    -0.984605793974606, 4.28470580541735, 1.11996749834057, 1.67278245779503, 
    1.93783051552776)), row.names = c(NA, -23L), groups = structure(list(
    cntry = structure(1:23, .Label = c("Austria", "Belgium", 
    "Switzerland", "Czech Republic", "Germany", "Denmark", "Estonia", 
    "Greece", "Spain", "Finland", "France", "Hungary", "Ireland", 
    "Iceland", "Italy", "Luxembourg", "Netherlands", "Norway", 
    "Poland", "Portugal", "Sweden", "Slovakia", "United Kingdom"
    ), class = "factor"), .rows = structure(list(1L, 2L, 3L, 
        4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 13L, 14L, 15L, 
        16L, 17L, 18L, 19L, 20L, 21L, 22L, 23L), ptype = integer(0), class = c("vctrs_list_of", 
    "vctrs_vctr", "list"))), row.names = c(NA, 23L), class = c("tbl_df", 
"tbl", "data.frame"), .drop = TRUE), class = c("grouped_df", 
"tbl_df", "tbl", "data.frame"))

基于
dput
,它是一个分组数据集,即按“cntry”分组,每个“cntry”只进行观察。我们可以
取消分组
并应用

library(dplyr)
df %>% 
    ungroup %>%
    mutate(rank = dense_rank(desc(difference)))

别逼我了,阿克伦,你有时候真是疯了。他跑得太快了,就在9分钟后,stackoverflow还不让我接受他的回答