如何将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