【发布时间】:2017-02-02 04:25:40
【问题描述】:
以下是我正在尝试完成的假设示例:
a b A B
1 3 5 1 2 4
2 7 9 2 6 8
我有两个大小相同的data.frames。根据第一个data.frame中的每个值,我想更新第二帧中的对应值。如果我要使用带有假设条件的 C 风格 for 循环来编写它,它看起来像这样:
for (i = 0; i < numRol; i++) {
for (j = 0; j < numCol; j++) {
if (frame1[i][j] < frame2[i][j])
frame2[i][j] += 1
else
frame2[i][j] -= 1
}
}
所以在本例中,第二个data.frame 将被转换为:
A B
1 1 3
2 5 7
在这种 R 的情况下,我认为我不需要使用 for 循环,而是可以使用 apply 系列的一些变体。
对于我的具体情况,如果我在 frame1 中找到 0,我想将 1 放在 frame2 中的相同位置。在这种情况下,我可能需要使用嵌套应用,但我不太确定如何编写通用的可重现示例。
【问题讨论】: