我正在尝试计算两个向量的和积,但其中一个向量中有 NA。
crossprod(c(4.5,4,4,3,NA), c(1,5,4,1,1))
在计算中,我想将 NA 视为零。但是在原始数据框中,我仍然想将其保留为 NA 以进行进一步的数据处理。任何提示将不胜感激。
我正在尝试计算两个向量的和积,但其中一个向量中有 NA。
crossprod(c(4.5,4,4,3,NA), c(1,5,4,1,1))
在计算中,我想将 NA 视为零。但是在原始数据框中,我仍然想将其保留为 NA 以进行进一步的数据处理。任何提示将不胜感激。
您可以使用该sum
函数并告诉它忽略缺失值:
sum(c(4.5,4,4,3,NA)*c(1,5,4,1,1), na.rm = TRUE)
如果您的叉积比总和更复杂,您可以定义一个新函数来替换参数中的 NA:
crossprod.replacena <- function(x, y, val=0) {
crossprod(replace(x, is.na(x), val),
replace(y, is.na(y), val)
)
}
或者您可以replace
在不定义函数的情况下调用您的参数,因为replace
不会修改其参数。