数据帧中的行阈值

时间:2017-06-09 13:30:21

标签: r

考虑一个示例数据框:

A   B   C   v
5   4   2   3
7   1   3   5
1   2   1   1

如果元素大于或等于v,我想将行的所有元素设置为1,否则为0。示例数据框将产生以下结果:

A   B   C   v
1   1   0   3
1   0   0   5
1   1   1   1

我该如何有效地做到这一点?列数会更高,我想要一个解决方案,不要求我单独指定列的名称,而是将它应用于所有列(v除外)。

我使用for循环的解决方案太慢了。

1 个答案:

答案 0 :(得分:5)

我们可以创建逻辑矩阵并强制转换为二进制

df1[-4] <- +(df1[-4] >= df1$v)