一次将多个数值变量转换为虚拟变量
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
。
我一直在尝试将一堆整数变量(值从 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
。