在R中,我有一个操作,Inf当我转换数据帧时会创建一些值.
我想将这些Inf值转换为NA值.我的代码对于大数据来说速度慢,有没有更快的方法呢?
说我有以下数据帧:
dat <- data.frame(a=c(1, Inf), b=c(Inf, 3), d=c("a","b"))
Run Code Online (Sandbox Code Playgroud)
以下适用于单个案例:
dat[,1][is.infinite(dat[,1])] = NA
Run Code Online (Sandbox Code Playgroud)
所以我用以下循环推广它
cf_DFinf2NA <- function(x)
{
for (i in 1:ncol(x)){
x[,i][is.infinite(x[,i])] = NA
}
return(x)
}
Run Code Online (Sandbox Code Playgroud)
但我不认为这是真正使用R的力量.