r - 从作为字符串的总和中获取结果
问题描述
我有以下向量:
c("(NA)/2", "(Allreturns)/2", "(Noadjustedgrossincome)/2", "(1+5000)/2",
"(5000+10000)/2", "(10000+15000)/2", "(15000+20000)/2", "(20000+25000)/2",
"(25000+30000)/2", "(30000+40000)/2", "(40000+50000)/2", "(50000+75000)/2",
"(75000+100000)/2", "(100000+200000)/2", "(200000+500000)/2",
"(500000+1000000)/2", "(1000000+1500000)/2", "(1500000+2000000)/2",
"(2000000+5000000)/2", "(5000000+10000000)/2", "(10000000ormore)/2"
)
是否有任何直接的方法可以将向量中的字符串替换为总和的结果,对于这种方法是可能的?
期望的结果:
c("NA", "NA", "NA", "2500", "7500"...
解决方案
使用eval(parse(.))
sapply(seq(v), function(i) eval(parse(text=v[i])))
# [1] NA 2500.5 7500.0 12500.0 17500.0
# [6] 22500.0 27500.0 35000.0 45000.0 62500.0
# [11] 87500.0 150000.0 350000.0 750000.0 1250000.0
# [16] 1750000.0 3500000.0 7500000.0
请注意,我删除了一些用于演示的值。假设dat
是您的数据集,为了考虑变量,您可以执行以下操作:
with(dat, sapply(seq(v), function(i) eval(parse(text=v[i]))))
数据:
v <- c("(NA)/2", "(1+5000)/2", "(5000+10000)/2", "(10000+15000)/2",
"(15000+20000)/2", "(20000+25000)/2", "(25000+30000)/2", "(30000+40000)/2",
"(40000+50000)/2", "(50000+75000)/2", "(75000+100000)/2", "(100000+200000)/2",
"(200000+500000)/2", "(500000+1000000)/2", "(1000000+1500000)/2",
"(1500000+2000000)/2", "(2000000+5000000)/2", "(5000000+10000000)/2"
)
推荐阅读
- database-design - 数据库设计:尽可能通用地将表单字段存储在数据库中
- swift - 如何检查客户是否可以使用 StoreKit 进行应用内购买?
- html - 直接在页面上看到 CSS 的变化
- python - 我被困在从 xml 文件中加载数据
- node.js - 如果状态为 400,Xhr 不会记录响应
- amazon-s3 - 我正在使用 AWS 弹性转码器进行来自 s3 的视频对话。它在 s3 中创建多个输出文件夹和多个子文件夹
- php - 为什么 Id AutoGenerated 在 UPDATE with Relation 中使用 Symfony Doctrine 重新生成?
- android - Xamarin Android SSL 身份验证失败
- python-3.x - Python Pandas 数据透视表格式
- react-hooks - 使用 ClassNameMap 或 Record
用于将样式从一个组件传递到另一个组件的类型