r - 将 R 字符公式转换为数字
问题描述
如何将 y 向量转换为数值向量。
y <- c("1+2", "0101", "5*5")
当我使用
as.numeric(Y)
输出
钠 101 钠
解决方案
以下代码
sapply(y, function(txt) eval(parse(text=txt)))
应该去工作。
这个问题很深,你需要了解元编程。问题as.numeric
在于,如果字符串仅由数字和一个点组成,它只会将字符串转换为数字。其他所有内容都转换为NA
. 在您的情况下,“1+2”包含一个加号,因此不适用。或者“5 * 5”包含一个乘法,因此是NA。要说 R 应该“执行字符串给出的操作”,你需要eval
and parse
。
推荐阅读
- javascript - 从 Object 数组中,获取仅匹配键值的数组
- amazon-web-services - 需要 MFA 时如何在 CI/CD 命令中运行无服务器部署
- azure - 创建自包含部署时如何解决 Azure Devops Pipeline 中的目标问题
- javascript - 如何创建可选接口?
- flutter - Flutter TabBarView 和 Tabs
- python - Spyder:如何在不必调试/执行整个文件的情况下调试 python 程序的一部分?
- amazon-web-services - Terraform 对象列表语法
- sql - 在表 oracle 中插入缺失的行
- aws-application-load-balancer - 我们可以通过 AWS 控制台设置 AWS ALB 优先级吗?
- android - Android 通过改造发出 POST 请求