[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