总和很多行,其中一些行在所有需要的列中都具有NA

时间:2019-08-06 17:01:33

标签: r rowsum

我正在尝试执行rowSums,但最后一行的计数为零,我需要将其设置为“ NA”。

我的df是

fab.setOnClickListener { view ->
            Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                .setAction("Action", null).show()


        }

我基于此链接使用了此代码; Sum of two Columns of Data Frame with NA Values

  a  b   c  sum
1 1  4   7   12
2 2  NA  8   10
3 3  5   NA  8
4 NA NA  NA  NA

任何建议将不胜感激

1 个答案:

答案 0 :(得分:0)

对于每一行,检查是否全部都是NA,如果是,则返回NA;否则,请应用sum。我们已经选择了abc列,尽管这是所有列,因为张贴者指出可能还会有其他列。

sum_or_na <- function(x) if (all(is.na(x))) NA else sum(x, na.rm = TRUE)
transform(df, sum = apply(df[c("a", "b", "c")], 1, sum_or_na))

给予:

   a  b  c sum
1  1  4  7  12
2  2 NA  8  10
3  3  5 NA   8
4 NA NA NA  NA

注意

df以可复制的形式假定为:

df <- structure(list(a = c(1L, 2L, 3L, NA), b = c(4L, NA, 5L, NA), 
    c = c(7L, 8L, NA, NA)), 
    row.names = c("1", "2", "3", "4"), class = "data.frame")