【问题标题】:Collapse multiple columns into single row with maximum value from each column? [duplicate]将多列折叠成单行,每列具有最大值? [复制]
【发布时间】:2018-04-23 03:54:05
【问题描述】:

说我有这样的东西

df <- data.frame(row1 = c(1, 2), row2 = c(3, 1), row3 = c(1, 4))

我想折叠列,只保留每行的最大值,这样 df 是包含 2、3、4 的单行。我该怎么做?

【问题讨论】:

    标签: r dplyr


    【解决方案1】:

    简单:

    as.data.frame(lapply(df, max))
    #   row1 row2 row3                                                               
    # 1    2    3    4   
    

    【讨论】:

      【解决方案2】:

      data.table:

      library(data.table)
      setDT(df)[, lapply(.SD, max)]
      

      结果:

         row1 row2 row3
      1:    2    3    4
      

      【讨论】:

        【解决方案3】:

        使用dplyr

        df %>% dplyr::summarise_all(max)
        
        #   row1 row2 row3
        # 1    2    3    4
        

        【讨论】:

        • @mowglis_diaper,也许,但是当这是一个比我自己的答案质量更好的副本时,感觉就像在作弊
        猜你喜欢
        • 2023-03-10
        • 1970-01-01
        • 2016-01-02
        • 2018-12-08
        • 1970-01-01
        • 2016-12-10
        • 2014-12-01
        • 2015-07-07
        相关资源
        最近更新 更多