Use sapply
and is.na<-
> dat <- data.frame(a=c(1, Inf), b=c(Inf, 3), d=c("a","b"))
> is.na(dat) <- sapply(dat, is.infinite)
> dat
a b d
1 1 NA a
2 NA 3 b
Or you can use (giving credit to @mnel, whose edit this is),
> is.na(dat) <- do.call(cbind,lapply(dat, is.infinite))
which is significantly faster.