首页 > 解决方案 > 将 R 字符公式转换为数字

问题描述

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

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

当我使用

as.numeric(Y)

输出

钠 101 钠

标签: rspecial-charactersnumeric

解决方案


以下代码

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

应该去工作。

这个问题很深,你需要了解元编程。问题as.numeric在于,如果字符串仅由数字和一个点组成,它只会将字符串转换为数字。其他所有内容都转换为NA. 在您的情况下,“1+2”包含一个加号,因此不适用。或者“5 * 5”包含一个乘法,因此是NA。要说 R 应该“执行字符串给出的操作”,你需要evaland parse


推荐阅读