André,

Minha sugestão não exatamente sua resposta, mas pode ajudar:

data(iris)

list.data <- lapply(X = list('1' = iris, '2' = iris, '3' = iris),
                    FUN = function(data) with(data, tapply(Sepal.Length, Species, length)))

Att,
FH

2015-08-20 15:09 GMT-05:00 André Vieira <andrehpv@gmail.com>:
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)
Skype: andre.hpv

_______________________________________________
R-br mailing list
R-br@listas.c3sl.ufpr.br
https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.