将值从一个表复制到另一个表,仅在第二个表具有特定值的情况下

问题描述 投票:1回答:1

我认为这很简单,但是我看了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
r dplyr sapply
1个回答
3
投票

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

df1 * df2

如果'row'是第一列,则通过删除第一列来对数据集进行子集,并使用任何数据集的第一列删除cbind

cbind(df1[1], df1[-1] * df2[-1])
© www.soinside.com 2019 - 2024. All rights reserved.