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

时间:2015-08-05 16:23:14

标签: r transformation dummy-variable

我试图将一堆整数变量(值从1到10加上几个NAs)转换为相同数量的布尔变量,其中值< = 8变为FALSE,> 8变为TRUE,并且NAs仍然是NAs。

基于其他Q& As,我尝试了以下但没有任何效果:

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个变量,我只需要用两种不同的方式进行变换,所以只用两个步骤来完成这个过程非常有用。

1 个答案:

答案 0 :(得分:3)

你可以使用

 data4[,8:48] >8

输出将是matrix TRUE/FALSE个值NA和{{1}}(如果有)。