在不修改 R 的情况下替换 NA 值

Substitute NA values in place without modification in R

我有一个包含几个 NA 值的矩阵,我希望用空字符串替换它们。

m <- matrix(letters, ncol=8, nrow=3)
m[c(3, 8, 14, 17, 22)] <- NA

有没有办法在不修改变量 m 的情况下用 "" 替换 NA 值?例如,我想在不更改 m.

的情况下执行以下操作
m[is.na(m)] <- ""
some_function(m)

所以可以有效地做到这一点,但在基础 R:

na_to_empty_string(m)  # returns new matrix without changing m

注意,我试图用空字符串而不是 NAs 创建一个临时矩阵,而不是打印它(我们可以使用 print(m, na.string=""))。像 na.omit() 这样的函数似乎省略整行,而不仅仅是单元格。

我们可以使用replace不改变原来的对象'm'。

replace(m, is.na(m), '')