我认为这很简单,但是距离我查看R已经有一段时间了。
我有两个表,我想根据第二个表的值制作第一个表的表。 (我想要表1中的数字,只要表2中相应的行/列都为“ 1”)
我在想sapply
或lapply
可能是我需要的东西,还是Why can’t I push log data to CloudWatch Logs with the awslogs agent?中的东西?只是不确定如何。
表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 :(得分:3)
一个更简单的选择是逐元素乘法,因为它们是数字列,并且任何乘以0的数字都将返回0,而乘以1的数字将返回数字本身(假设两个数据集的维数相同
df1 * df2
如果“行”是第一列,则通过删除任何数据集的第一列和第一列的cbind
来对数据集进行子集化
cbind(df1[1], df1[-1] * df2[-1])