Salvando saída do loop for em quadros de dados separados
Eu tenho um problema simples que não consegui resolver, apesar das muitas postagens semelhantes, porque sou um idiota no R e não estou conseguindo o que deveria estar recebendo. Eu tenho dois conjuntos de arquivos,
All.Files <- objects(pattern="constant.country[0-9]{4}")
all.files <- objects(pattern="constant[0-9]{4}")
que desejo mesclar
mergefun <- function(X1, Y1) {
merge(X1, Y1, by = "id")
}
e salve cada iteração de mesclagem em um novo quadro de dados
for (i in All.Files) {
a <- get(i)
{ for (j in all.files)
b <- get(j)
d <- dataframe(mergefun(a, b))
newname <- paste("C", substr(j, 9, 12), sep="")
names(d) <- c("Id", "Country", "logGDP", "GRI", GRI.group", "Year")
assign(newname,d)
}
}
Embora eu tenha certeza de que há um código mais elegante por aí, esse código faz o que eu quero. O problema é que ele está salvando apenas a iteração final da mesclagem, de modo que, em vez de obter quadros de dados 1:43, eu recebo apenas o 43º. Sei que não estou conseguindo indexar corretamente no loop for, mas lutei por horas para entender meu erro e falhei.
Lamento não ter incluído um exemplo reproduzível, mas esperava que, como meu código realmente funcionasse, alguém pudesse ver instantaneamente o que estava faltando, permitindo que todas as 43 iterações fossem produzidas por meio de atribuição. Também estou ciente de que o mapply provavelmente seria uma solução melhor, mas não consegui obter nenhuma tração, apesar de várias horas de tentativas!
Um muito humilde (e humilhado por minha própria ignorância) obrigado.