我认为这很简单,但是我看了R已经有一段时间了。
我有两个表,我想根据第二个表中的值创建第三个表,其中包含第一个表。 (我想要表1中的数字,只要表2中相应的行/列有“1”)
我在想sapply
或lapply
可能是我需要的东西,还是来自dplyr的东西?只是不确定如何。
表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
一个更简单的选择是元素乘法,因为它们是数字列,因为任何数字乘以0都会返回0,而那些乘以1会给出数字本身(假设两个数据集具有相同的维度)
df1 * df2
如果'row'是第一列,则通过删除第一列来对数据集进行子集,并使用任何数据集的第一列删除cbind
cbind(df1[1], df1[-1] * df2[-1])