跨列的条件总和

SMM*_*SMM 3 r sum

我想在R中生成一个新变量,它创建一个其他列满足标准的次数之和,我需要一个可以处理NA的函数,例如,

x <- seq(10,20); y <- seq(12,22); y[4] <- NA; z <- seq(14,24); z[c(4,5)] <- NA
data <- cbind(x,y,z)
Run Code Online (Sandbox Code Playgroud)

我想要的是一个变量"less16",它总结了每个记录/行在x,y,z列之间的值<16的次数:

x   y   z   less16
10  12  14  3
11  13  15  3
12  14  16  2
13  NA  NA  1
14  16  NA  1
etc
Run Code Online (Sandbox Code Playgroud)

我已经尝试了rowSum(),sum(),which(),for循环使用if和else if,到目前为止都无济于事.任何建议将不胜感激.提前致谢.

bli*_*sse 7

data$less16 <- rowSums(data < 16,na.rm=TRUE)
Run Code Online (Sandbox Code Playgroud)


jor*_*ran 5

很多这些函数实际上都有一个na.rm用于排除NA值的参数:

apply(data,1,function(x) {sum(x < 16,na.rm = TRUE)})
Run Code Online (Sandbox Code Playgroud)