【问题标题】:Can't combine <character> and <double> on adding sort function在添加排序功能时不能结合 <character> 和 <double>
【发布时间】:2021-02-08 20:00:49
【问题描述】:

我正在尝试根据中位数价格(即 m )对数据进行排序,但是当我添加排序功能时,它会抛出一个错误

错误:无法组合 locationName 字符和 m 双精度

在我的情况下,我如何根据新变异的列对数据进行排序?中位数价格?

df %>% 
    filter_at(.vars= vars(area), all_vars(grepl('10 Marla',.))) %>%
    group_by(locationName,area,city) %>%
     mutate(m = median(price)) %>%
     select(locationName,area,city,m) %>% 
     sort(m,decreasing = TRUE)

【问题讨论】:

    标签: r dplyr


    【解决方案1】:

    我们可以在mutate中使用sort

    library(dplyr)
    df %>% 
       filter_at(.vars= vars(area), all_vars(grepl('10 Marla',.))) %>%
       group_by(locationName,area,city) %>%
       mutate(m = median(price)) %>%
       select(locationName,area,city,m) %>% 
       mutate(m = sort(m,decreasing = TRUE))
    

    如果打算根据“m”对行进行排序,请使用arrange

    df %>% 
     filter_at(.vars= vars(area), all_vars(grepl('10 Marla',.))) %>%
     group_by(locationName,area,city) %>%
     mutate(m = median(price)) %>%
     select(locationName,area,city,m) %>% 
     arrange(desc(m))
    

    【讨论】:

    • 谢谢@akrun。为什么 sort 正在使用 mutate ,但这里不是没有它?
    • @usman 您可能需要使用pull.$ 提取列,即%&gt;% .$m %&gt;% sort(., decreasing = TRUE)
    猜你喜欢
    • 1970-01-01
    • 2011-06-21
    • 2018-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多