一次将多个数值变量转换为虚拟变量

Transform many numerical variables to dummy variables at once

我一直在尝试将一堆整数变量(值从 1 到 10,加上一些 NA)转换为相同数量的布尔变量,其中值 <=8 变为 FALSE,>8 变为 TRUE , NA 保持为 NA。

根据周围的其他问答,我尝试了以下但没有任何效果:

TPS <- names(datos[,1:3])
    for(i in TPS) {
     data4[[i]]==NA <- NA
     data4[[i]]<8 <- FALSE
     data4[[i]]>=8 <- TRUE
    }

    TPS <- names(data4[,8:48])
    for(i in TPS) {
      data4[,i]==NA <- NA
      data4[,i]<8 <- FALSE
      data4[,i]>=8 <- TRUE
    }

    TPS <- names(data4[,8:48])
    for(i in TPS) {
      ifelse(data4[,i]<8, FALSE, TRUE)
    }

我知道如何一次处理一个变量,但我的数据集有 64 个变量,我必须以两种不同的方式进行转换,因此只需 2 个步骤即可完成此操作的过程将非常有用。

您可以直接使用

 data4[,8:48] >8

输出将是 TRUE/FALSE 值和 NA(如果有)的逻辑 matrix