我正在尝试解决R中数据框中的一些麻烦的行。我的方法是将它们简单地加在一起,将两行合并为1。因此,例如,如果我有100列,其中X列,那么我将有99列操作后带有X列的行。理想情况下,我只传递两个行号,然后将它们合并。我想像矩阵运算一样为每一列添加每个值。我怎样才能做到这一点?
答案 0 :(得分:3)
将两行加在一起,覆盖第二行,然后删除第一行。
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