Pessoal,
Quero rodar um loop que, em um dos comandos, adicione números em sequência (e.g. 1, 2, 3) apenas à segunda coluna de várias bases de dados. No meu caso, imaginei que precisaria usar um loop dentro de outro, mas não funcionou. (Ainda estou começando no R, como vocês podem perceber).
Segue um exemplo mais simples com a base "iris":
data1 <- iris
data2 <- iris
data3 <- iris
list_data <- list(data1, data2, data3)
list_emp <- vector("list", length(list_data))
for(i in 1:length(list_data)){
file <- list_data[[i]]
Sepal.Length <- tapply(file$Sepal.Length, file$Species, length)
newData <- as.data.frame(Sepal.Length)
newData <- cbind(Species = rownames(newData), newData)
rownames(newData) <- NULL
list_emp[[i]] <- newData
for(j in 1:3){
colnames(list_emp[[i]][2]) <- paste("Sepal.Length", j, sep = "_") # Nao funciona
}
rm(Sepal.Length, file, i, newData)
}
O loop deveria retornar uma lista com data frames na forma:
# Species | Sepal.Length_1
# setosa | 50
# versicolor | 50
# virginia | 50
# Species | Sepal.Length_2
# setosa | 50
# versicolor | 50
# virginia | 50
# Species | Sepal.Length_3
# setosa | 50
# versicolor | 50
# virginia | 50
Alguém pode me ajudar a corrigir a linha que não funciona? Além disso, aceito sugestões que não sejam com for loops.
Abs.,
André
--
André VieiraMestre, Sociologia, UFMG (M.Sc., Sociology, UFMG)
Bacharel, Sociologia, UnB (B.Sc., Sociology, UnB)
Licenciado, Sociologia, UnB (B.Ed., Sociology, UnB)
Skype: andre.hpv