【问题标题】:Match values from a data frame匹配数据框中的值
【发布时间】:2021-06-18 12:10:36
【问题描述】:

是否可以从数据集中返回最常见的持续时间?我想从 16:00 列返回与持续时间列对应的最高值:30 和 60。

样本输出:

期望的输出

持续时间:30 60

样本数据

structure(list(Duration = c(10, 20, 30, 40, 50, 60), `16:00` = c(1, 
0, 3, 0, 1, 3), `16:10` = c(0, 1, 0, 0, 1, 0), `16:20` = c(0, 
0, 0, 2, 1, 0)), class = c("spec_tbl_df", "tbl_df", "tbl", "data.frame"
), row.names = c(NA, -6L), spec = structure(list(cols = list(
    Duration = structure(list(), class = c("collector_double", 
    "collector")), `16:00` = structure(list(), class = c("collector_double", 
    "collector")), `16:10` = structure(list(), class = c("collector_double", 
    "collector")), `16:20` = structure(list(), class = c("collector_double", 
    "collector"))), default = structure(list(), class = c("collector_guess", 
"collector")), skip = 1L), class = "col_spec"))

【问题讨论】:

    标签: r dataframe


    【解决方案1】:

    这行得通吗:

    library(dplyr)
    library(tidyr)
    df %>% pivot_longer(-Duration) %>% slice_max(order_by = value,n = 1) %>% pull(Duration)
    [1] 30 60
    

    【讨论】:

      【解决方案2】:

      如果您只是按照所述查看列16:00,这应该可以正常工作。

      df$Duration[df$`16:00` == max(df$`16:00`)]
      # [1] 30 60
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-09-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-12-05
        • 1970-01-01
        • 2020-07-30
        • 2017-12-15
        相关资源
        最近更新 更多