基于R中的其他变量创建大量新变量

时间:2015-08-13 03:50:04

标签: r

我仍然是一个新手R用户,我尝试多次运行以下操作,每次都将新变量存储到我的数据框中:

#Create data frame
ID <- c(286, 352, 477, 570, 870)
AV <- c(2, 3, 3, 2, 2)
AV2 <- c(1, 2, 2, 3, 3)
mydata <- data.frame(ID, AV, AV2)

这是我想要在循环中设置的关键部分:

mydata$NEWAV.1 <- mydata$AV 
switch <- sample(which(mydata$AV == 2), 45, replace = FALSE)
mydata.switch <- mydata[switch,]
mydata.stay <- mydata[-switch,]
mydata.switch$NEWAV.1 <- mydata.switch$AV2
mydata <- rbind(mydata.stay, mydata.switch)
mydata <- mydata[order(mydata$ID),]

我的意图是在我的数据框中有一堆NEWAV。#变量。因此,如果我循环这次超过100次,我就有NEWAV.1到NEWAV.100变量。

这是我的尝试。不幸的是,我在将这些新变量存储到数据框中时遇到了麻烦。

#Doing it 3 times for testing purposes
for (i in 1:3){
switch <- sample(which(mydata$AV == 2), 45, replace = FALSE)
mydata.switch <- mydata[switch,]
mydata.stay <- mydata[-switch,]
cbind(assign(paste0("NEWAV.", i), mydata$AV), mydata)
cbind(assign(paste0("NEWAV.", i), mydata.switch$AV2), mydata.switch)
mydata <- rbind(mydata.stay, mydata.switch)
mydata <- mydata[order(mydata$ID),]
}

0 个答案:

没有答案