我需要为数据框中的变量的每个唯一唯一分类值创建一个虚拟变量。
我想知道是否可以将unique(data$variable)
变成一个向量,然后创建一个forloop,为每个值分配一个新变量。像
for(val in vector){
data$print(val)<- ifelse(data$variable == val, 1, 0)}
当我尝试出现此错误时:
复杂分配中的无效功能
将代码更改为 对于(向量中的val){
data$print[val]<- ifelse(data$variable == val, 1, 0)}`
产生错误
$<-.data.frame
(*tmp*
中的错误,打印,值= c(1,1,1,1,1,1,1, :替换有480437行,数据有480436
data $ variable也已经是因素
谢谢您的帮助。
答案 0 :(得分:0)
正确的代码是
`for(value in vector) {
nam <- paste(value)
assign(nam, ifelse(data$variable == value, "1", "0"))
data<-cbind(data, get(value))
}`
其中assign为每个ifelse语句的结果创建对象,然后cbind将它们连接到数据框