2016-04-19 2 views
0

Я создаю много новых переменных, всегда одинаковых на основе существующих переменных. Учитывая, что это всегда одно и то же, я хотел бы сделать это в цикле.Loop over list in R дает ошибку

varlist <- list("x1", "x2", "x3", "x4", "x5", "x6", "x7", "x8", "x9", "x10") 

for (i in varlist){ 

    mydata$Var2_[i] <- (mydata$Var1_[i]/2) 

} 

Как я могу обратиться к «i»? Я старался, я, [я], [[я]] и только я, но всегда получаю ошибки:

1: In `[<-.data.table`(x, j = name, value = value) : 
    Adding new column 'PP_onesided_' then assigning NULL (deleting it). 
+0

FYI, вы можете сделать 'varlist = paste0 (" x ", 1:10)'. – eipi10

+0

Что такое 'mydata' – csgillespie

ответ

0

Похоже, что вы пытаетесь объединить имя столбца вместе. Попробуйте сделать это вот так:

varlist <- c("x1", "x2", "x3", "x4", "x5", "x6", "x7", "x8", "x9", "x10") 

for (i in varlist){  
    mydata[, paste0("Var2_", i)] <- (mydata[, paste0("Var1_", i)]/2)  
}