cbind(df, apply(df, 1, sum, na.rm = T))
请注意,如果数据框中还有其他列,则需要将df
中的apply
调用限制为仅作为您要访问的列。
幸运的是,您的桌子很小。我将其变成一个小三角形,然后使用rowSums
计算您似乎想要的数字。
df <- tibble::tribble(
~x, ~y, ~z,
6000, NA, NA,
NA, NA, NA,
100, 7000, 1000,
0, 0, NA
)
df$sum <- rowSums(df, na.rm = T)
df
#> # A tibble: 4 x 4
#> x y z sum
#> <dbl> <dbl> <dbl> <dbl>
#> 1 6000 NA NA 6000
#> 2 NA NA NA 0
#> 3 100 7000 1000 8100
#> 4 0 0 NA 0
由reprex package(v0.3.0)在2020-06-15创建
NA
中计算df
的值。如果一行中没有非NA
值,则可以将输出分配为NA
,或者使用rowSums
来计算按行求和。ifelse(rowSums(!is.na(df)) == 0, NA, rowSums(df, na.rm = TRUE))
#[1] 6000 NA 10000 8100 0
数据
df <- structure(list(x = c(6000, NA, 10000, 100, 0), y = c(NA, NA, NA, 7000, 0), z = c(NA, NA, NA, 1000, NA)), class = "data.frame", row.names = c(NA, -5L))