r - 基于R数据帧之间匹配条件的操作
问题描述
我有以下数据框:
head(RH)
160143 161143 161144 161145 161146 162145 162146 162147 163146 163147
1 24.9 26.4 27.4 28.5 30.4 29.2 32.6 58.7 50.6 62.1
2 10.6 29.4 29.3 29.5 30.3 29.7 33.0 68.2 53.2 82.3
3 17.7 30.7 30.7 31.7 31.5 29.4 34.1 65.0 48.0 78.5
4 39.2 38.6 41.0 37.5 29.0 31.1 36.4 56.4 89.7 83.9
5 23.1 23.0 27.9 29.9 38.2 29.6 41.4 88.2 86.0 91.2
6 27.7 28.1 38.5 40.7 50.8 43.3 56.7 106.6 72.5 94.2
head(percentage)
xy perc
1 160143 50.22337
2 161143 29.69779
3 107167 41.98815
4 107168 66.68095
5 107169 37.67827
6 108167 29.69238
我想将 RH 列乘以 perc 列的值,当 RH 的列名与 perc 的 xy 列匹配时(即列 160843 应全部乘以 50.22337,列 161143 应乘以 29.69779 等... (在示例中没有更多匹配项,但百分比数据框的 xy 列包含 RH 列名称中的所有可能值)。
结果应该是一个与 RH 相同维度的数据框。
解决方案
您可以提取现有列的比例因子:
foo <- percentage$perc[match(colnames(RH), percentage$xy)]
# [1] 50.22337 29.69779 NA NA NA NA NA NA NA NA
1
并在其中插入NA
(即,其他列将乘以1
):
t(t(RH) * ifelse(is.na(foo), 1, foo))
推荐阅读
- c# - 需要一个统一的公共类但被迫添加静态
- multithreading - 线程是否立即启动
- python - PyCriptodome AES ValueError(“PKCS#7 填充不正确。”)
- c - 如何使用自上而下的方法检索无界背包的拾取物品
- angular - Angular 5 ngModel setting default value based on form input
- php - Wordpress 查询用户并显示为分类
- php - 合并 2 个 PDO 数组并按共享列排序
- docker - 为什么我会从 Docker 容器中弹出?
- graph - 获取每个关系neo4j的路径长度
- ruby - 以编程方式使用 berkshelf