代码之家  ›  专栏  ›  技术社区  ›  TheCodeNovice

将数据帧的两行相加

  •  1
  • TheCodeNovice  · 技术社区  · 6 年前

    我试图在R的数据帧中解决一些麻烦的行。我的办法是简单地把它们加在一起,把两行合并成1行,比如说,如果我有100行X列,那么在操作之后我会有99行X列。理想情况下,我只需传递两个行号,它们就会合并在一起。我想把每一列的值加起来,就像矩阵运算一样。我该怎么做?

    1 回复  |  直到 6 年前
        1
  •  3
  •   G. Grothendieck    6 年前

    将两行相加,覆盖第二行,然后删除第一行。

    combine_rows <- function(data, row1, row2) {
      data[row2, ] <- data[row1, ] + data[row2, ]
      data[-row1, ]
    }
    
    # test using builtin data frame, BOD
    
    BOD
    ##   Time demand
    ## 1    1    8.3
    ## 2    2   10.3
    ## 3    3   19.0
    ## 4    4   16.0
    ## 5    5   15.6
    ## 6    7   19.8
    
    combine_rows(BOD, 2, 3)
    ##   Time demand
    ## 1    1    8.3
    ## 3    5   29.3   <-- this row is the sum of original rows 2 and 3
    ## 4    4   16.0
    ## 5    5   15.6
    ## 6    7   19.8