r - 更改数据框的单位和值
问题描述
我有一个数据框,其中包含化合物浓度及其在水中的目标值。对于某些化合物,注册值的单位与其最大值不同。
我想将目标转换为相同的值单位。所以例如我有这个:
Value Dimension Target Unit
A 0.001 ug/L 12 ng/L
B 0.1 ug/L 1 ug/L
C 0.25 ug/L 1 ng/L
我想得到:
Value Dimension Target Unit
A 0.001 ug/L 0.012 ug/L
B 0.1 ug/L 1 ug/L
C 0.25 ug/L 0.001 ug/L
1ng/L = 1000 ug/L
我怎样才能在 R 中做到这一点?
谢谢!
解决方案
你可以使用ifelse
. 如果dat
是您提供的 data.frame,那么这样的事情应该可以工作:
dat[, "Target"] <- ifelse(dat[,"Unit"]=="ng/L", dat[,"Target"]/1000, dat[,"Target"])
如果您有两个以上不同的单元,则需要嵌套ifelse
调用或ifelse
连续调用。
请注意,它ifelse
是 , 的矢量化版本if
,并一次处理整个列。
推荐阅读
- jquery - 如何使用jquery检查滚动条是否到达div
- java - 如何编写用于编组和解组的 Junit 测试用例
- ios - Inout 参数不允许相互别名
- android - 进行网络调用后如何使用 GraphView 绘制图形?
- ios - 在 swift 4.0 中从 firebase 快照字典中获取值时打开一个可选的 nil
- java - 获取 Java 应用程序的基本 url
- reactjs - vs 代码 - 使用 es6 自定义 jsx 智能感知
- php - Mysql重复行预防
- javascript - 用户注册时如何在不允许 gmail 和 yahoo 的情况下进行验证?
- python - 如何在python中计算上个月数据的最高总销售额