[R-br] Loop para mudar nomes de colunas em data.frames
André Vieira
andrehpv em gmail.com
Quinta Agosto 20 17:09:27 BRT 2015
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é Vieira*
Mestre, Sociologia, UFMG (M.Sc., Sociology, UFMG)
Bacharel, Sociologia, UnB (B.Sc., Sociology, UnB)
Licenciado, Sociologia, UnB (B.Ed., Sociology, UnB)
GitHub <http://github.com/ahpvieira>
Currículo Lattes <http://lattes.cnpq.br/6721713322923268>
Skype: andre.hpv
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20150820/3f6f38b8/attachment.html>
Mais detalhes sobre a lista de discussão R-br