Nomeando elementos da lista em R
Ultimamente, tenho trabalhado com algumas listas grandes e complexas e vi um comportamento surpreendente (pelo menos para mim), principalmente relacionado à atribuição de nomes a uma lista. Um exemplo simples:
Fil <- list(
a = list(A=seq(1, 5, 1), B=rnorm(5), C=runif(5)),
b = list(A="Cat", B=c("Dog", "Bird"), C=list("Squirrel", "Cheetah", "Lion")),
c = list(A=rep(TRUE, 5), B=rep(FALSE, 5), C=rep(NA, 5)))
filList <- list()
for(i in 1:3){
filList[i] <- Fil[i]
names(filList)[i] <- names(Fil[i])
}
identical(Fil,filList)
[1] TRUE
mas:
for(i in 1:3){
filList[i] <- Fil[i]
names(filList[i]) <- names(Fil[i])
}
identical(Fil,filList)
[1] FALSE
Eu acho que a principal razão pela qual isso me confunde é porque a forma do lado esquerdo da primeiranames
a linha no primeiro loop for precisa ser diferente daquela do lado direito para funcionar; Eu teria pensado que estes deveriam ser os mesmos. Alguém poderia me explicar isso?