如何处理 R 中 crossprod 中的缺失值?
How to handle missing values in crossprod in R?
我正在尝试计算两个向量的和积,但其中一个向量中有 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
不会修改其参数。
我正在尝试计算两个向量的和积,但其中一个向量中有 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
不会修改其参数。