rowSums
есть для таких случаев. Если data.frame получил более 2 столбцов, то df
следует заменить на df[c("X1","X2")]
в приведенном ниже решении.
Если OP хочет, чтобы в последней строке было NA
, то решение может быть следующим:
df$X3 <- ifelse(rowSums(is.na(df)) == ncol(df), NA, rowSums(df, na.rm = TRUE))
df
# X1 X2 X3
# 1 3 5 8
# 2 6 9 15
# 3 3 3 6
# 4 0 6 6
# 5 NA 4 4
# 6 NA NA NA
Если последняя строка (со всеми NA
) ожидаемой суммой равна 0
, тогда простой rowSums
будет работать как:
df$X3 <- rowSums(df, na.rm = TRUE)
df
# X1 X2 X3
# 1 3 5 8
# 2 6 9 15
# 3 3 3 6
# 4 0 6 6
# 5 NA 4 4
# 6 NA NA 0
Данные:
df <- read.table(text =
"X1 X2
3 5
6 9
3 3
0 6
NA 4
NA NA",
header = TRUE)