使用R,我有一个向量

a <- c(0.1,0.6,23,Inf,NaN)


我想将其转换为

c("Finite","Finite","Finite","Inf","NaN")


尽可能少的痛苦。怎么做?

谢谢!
宇里

最佳答案

ifelse()似乎运作良好:

b <- ifelse(is.finite(a), "Finite", ifelse(is.infinite(a), "Infinite", "NaN"))
> b
[1] "Finite"   "Finite"   "Finite"   "Infinite" "NaN"


从技术上讲,它返回一个字符向量,可以使用as.factor()进行转换,也可以将factor()环绕在初始调用周围,以返回一个以...开头的因数...尽管字符可能会根据您的需要满足您的需求。

08-28 00:56