将列表对象中的 NaN/Inf/NA 替换为 0

标签 r

我在 R 中有一个具有 NaN/Inf/NA 值的列表对象:

dat <- list(a=matrix(c(2,0/0,10/0,NA),nrow=2), b=matrix(c(-3,0,NA,1),nrow=2))

如何将 NaN/Inf/NA 元素替换为 0?

最佳答案

我们可以replace通过循环 list 将非有限值变为 0具有 lapply 的元素

lapply(dat, function(x) replace(x, !is.finite(x), 0))
#     [,1] [,2]
#[1,]    2    0
#[2,]    0    0

#$b
#     [,1] [,2]
#[1,]   -3    0
#[2,]    0    1

关于将列表对象中的 NaN/Inf/NA 替换为 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42697414/

相关文章:

通过对数据子集进行排序来重新排序 x 轴变量

r - 有没有办法在 Rmarkdown 中指定全局选项 block 函数,以便通过切换命令仅显示/不显示某些图形?

r - 从Auto.arima到R中的预测

r - 表或数据框上的复选框

json - 如何将JSON导入R并将其转换为表?

r - 计算滚动窗口协方差矩阵

r - 多个 Dockerfile 的一个 R 包文件

r - 将 na.rm=T 放在我的应用函数中的位置

r - 在 R 中创建一个包含两个变量的 "by"循环

r - 在pdf输出中进行编织时,如何在R Markdown中对文本进行正反对齐