【问题标题】:Copy values from one table to another, only where second table has specific values将值从一个表复制到另一个表,仅在第二个表具有特定值的情况下
【发布时间】:2019-04-24 16:27:37
【问题描述】:

我认为这很简单,但我已经有一段时间没有看过 R 了。

我有两个表,我想根据第二个表中的值创建第三个表,其中包含第一个表中的值。 (我想要表 1 中的数字,只要表 2 中相应的行/列有“1”)

我在想sapplylapply 可能是我需要的,或者来自 的东西?只是不确定如何。

表 1 (df1):

row  sample.1  sample.2  sample.3
1       55       6788      4003
2     9000        135      1200
3     3400       2000      7500
4       92        348       227  
5     4286       2731      6298

表 2 (df2):

row  sample.1  sample.2  sample.3
1        0          1         1
2        1          0         0
3        1          1         1
4        0          0         0  
5        1          1         1

表 3( df3 - 所需输出):

row  sample.1  sample.2  sample.3
1        0       6788      4003
2     9000          0         0
3     3400       2000      7500
4        0          0         0  
5     4286       2731      6298

【问题讨论】:

  • 你有列row 还是只是行名
  • 抱歉,只是行名。

标签: dplyr r dplyr sapply


【解决方案1】:

一个更简单的选择是元素乘法,因为这些是数字列,因为任何数字乘以 0 返回 0,而乘以 1 的数字本身就是数字(假设两个数据集具有相同的维度

df1 * df2

如果“行”是第一列,则通过删除第一列和cbind 与任何数据集的第一列来子集数据集

cbind(df1[1], df1[-1] * df2[-1])

【讨论】:

  • 撞到额头太棒了!
猜你喜欢
  • 2015-05-17
  • 1970-01-01
  • 1970-01-01
  • 2019-11-29
  • 1970-01-01
  • 2022-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多