Вот вариант, в котором используются собственные имена R, за исключением «Finite», поэтому запись немного короче, а в качестве бонуса также обрабатывает отрицательную бесконечность и NA
:
# Include -Inf and NA...
a <- c(0.1,0.6,23,Inf,-Inf,NaN,NA)
format(ifelse(is.finite(a), "Finite", a), justify="none")
#[1] "Finite" "Finite" "Finite" "Inf" "-Inf" "NaN" "NA"
... Но если вы действительно хотите строки "Infinity" и "-Infinity", тогда это будет сделано:
sub("Inf", "Infinity", format(ifelse(is.finite(a), "Finite", a), justify="none"))
Наконец, если вы хотите сохранить NA
s, просто не звоните format
:
sub("Inf", "Infinity", ifelse(is.finite(a), "Finite", a))
#[1] "Finite" "Finite" "Finite" "Infinity" "-Infinity" "NaN" NA