考虑一个示例数据框:
A B C v
5 4 2 3
7 1 3 5
1 2 1 1
Run Code Online (Sandbox Code Playgroud)
如果元素大于或等于v,我想将行的所有元素设置为1 ,否则为0.示例数据框将导致以下结果:
A B C v
1 1 0 3
1 0 0 5
1 1 1 1
Run Code Online (Sandbox Code Playgroud)
我怎样才能有效地做到这一点?列数会更高,我想要一个解决方案,不要求我单独指定列的名称,而是将它应用于所有列(除外v).
我使用for循环的解决方案太慢了.
我们可以创建一个逻辑矩阵并强制转换为二进制
df1[-4] <- +(df1[-4] >= df1$v)
Run Code Online (Sandbox Code Playgroud)