我想创建几个变量 0/1,它们满足具有不同截止点的条件。使用 50 到 100 的间隔,我想为这两个数字之间的每个点创建一个 0/1 变量,其中 0 小于,其他均为 1。
例如:data1$V1<-ifelse(data1$Value<50, 0, 1)
其中 data1$Value
具有区间信息,data1$V1
是第一个使用 50 作为截止值的二进制向量,但 data1$V2
将是 51,依此类推。
一些可重现的代码作为入门:
data1<-data.frame(Value=sample(1:120, 50, replace=TRUE))
data1$V1<-ifelse(data1$Value<50, 0, 1)
data1$V2<-ifelse(data1$Value<51, 0, 1)
data1$V3<-ifelse(data1$Value<52, 0, 1)
我怎样才能用循环来做到这一点?
最佳答案
也许,这对你有用:
data1<-data.frame(Value=sample(1:120, 50, replace=TRUE))
r <- 1:50
vars <- paste0('V', r)
const <- 50
for (i in seq_along(vars)){
data1[[vars[i]]] <- ifelse(data1$Value<const+i-1, 0, 1)
}
关于r - 通过在循环中更改条件来创建多个二分变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57871247/