a <- matrix(c(1, NA, 3, NA, NA, 0, NA, 6, NA , 2, 3 , 2 , 1 , NA, 3, NA , NA, 3 ,NA, 0), nrow=4, ncol=5, byrow=T)
apply(a, 1, function(x) max(x, na.rm=T)-min(x, na.rm=T)) # difference by row
apply(a, 2, function(x) max(x, na.rm=T)-min(x, na.rm=T)) # difference by column
您可以看到 - 参见 - in case where where a difference 无法计算差异。 要改变此行为, 请使用以下代码 :
apply(a, 1, function(x) ifelse(max(x, na.rm=T)-min(x, na.rm=T) == -Inf, NA, max(x, na.rm=T)-min(x, na.rm=T))) # difference by row
apply(a, 2, function(x) ifelse(max(x, na.rm=T)-min(x, na.rm=T) == -Inf, NA, max(x, na.rm=T)-min(x, na.rm=T))) # difference by column