将R字符中的公式转换为数字



如何将y向量转换为数字向量。

y<-c("1+2","0101","5*5"(

当我使用时

作为数字(Y(

输出

Na 101 Na

以下代码

sapply(y, function(txt) eval(parse(text=txt)))

应该去工作。

这个问题很深,你需要了解元编程。as.numeric的问题是,如果字符串只由数字和一个点组成,它只会将字符串转换为数字。其他所有内容都转换为NA。在你的情况下;1+2";包含一个加号,因此NA;5*5〃;包含乘法,因此NA;执行由字符串"给出的操作;,您需要CCD_ 3和CCD_。

带有map的选项

library(purrr)
map_dbl(y, ~ eval(rlang::parse_expr(.x)))
#[1]   3 101  25

最新更新