考虑一个示例数据框:
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循环的解决方案太慢了。
答案 0 :(得分:5)
我们可以创建逻辑矩阵并强制转换为二进制
df1[-4] <- +(df1[-4] >= df1$v)