
O que acontece e' q o arquivo final e' sim a concatenacao dos dois... mas o formato possui marcadores de fim de arquivo... e, por isso, concatenar arquivos binarios nao e' uma boa ideia... A estrutura (super-simplificada) interna de um arquivo binario gravado pelo R e': Magic-number #q identifica a validade do arquivo para aquele formato Cabecalhos e outros detalhes CONTEUDO... -> seus dados vem aqui Sinal de fim de arquivo... Dai' ao concatenar via file.append, vc fica com: Magic-number do arquivo1 Cabecalhos e outros detalhes do arquivo1 CONTEUDO do arquivo1 Sinal de fim de arquivo1 Magic-number do arquivo2 Cabecalhos e outros detalhes do arquivo2 CONTEUDO do arquivo2 Sinal de fim de arquivo2 Assim, o tamanho total e' a soma dos dois tamanhos... mas ao comecar a ler o arquivo e chegar em "Sinal de fim de arquivo1", o R pára por ali (afinal, ali e' um comando de "pare de ler, pq aqui eh o fim") e retorna os valores ate' entao obtidos... sem comecar no arquivo2... Se vc quiser de fato combinar ambos os arquivos, o q vc precisa fazer e': obj1 = load("arquivo1.RData") obj2 = load("arquivo2.RData") save(list=c(obj1, obj2), file="arquivo1.RData") Eu entendo pq vc gostaria de algo como file.append (afinal, vc pode nao querer abrir cada um dos arquivos e entao salvar de novo, etc)... mas, este e' o jeito "certo" de se fazer o q vc deseja. b Em 3 de abril de 2013 17:27, Alexandre Ribeiro Leichsenring <aleleich@uol.com.br> escreveu:
Olá a todos,
Estou tendo dificuldades com a função file.append.
Quando faço a concatenação de dois arquivos RData usando "file.append", vejo que o tamanho do arquivo resultante (em bytes) é igual à soma dos tamanhos dos arquivos originais. Porém, quando carrego o arquivo concatenado, aparece um objeto contendo somente os elementos do primeiro arquivo:
rm(list=ls())
# Criando arquivo 1 (df <- data.frame(x = letters[1:5], y = 1:5)) x y 1 a 1 2 b 2 3 c 3 4 d 4 5 e 5 save(df, file = "df1.RData") rm(df)
# Criando arquivo 2 (df <- data.frame(x = LETTERS[1:5], y = 10*(1:5))) x y 1 A 10 2 B 20 3 C 30 4 D 40 5 E 50 save(df, file = "df2.RData") rm(df)
# Criando uma cópia do arquivo 1 file.copy(from = "df1.RData", to = "df.RData", overwrite = T) [1] TRUE
# Concatenando df2 em df. file.append("df.RData", "df2.RData") [1] TRUE
file.info("df1.RData") size isdir mode mtime ctime atime exe df1.RData 177 FALSE 666 2013-04-03 17:19:39 2013-04-03 16:52:49 2013-04-03 16:52:49 no
file.info("df2.RData") size isdir mode mtime ctime atime exe df2.RData 197 FALSE 666 2013-04-03 17:19:39 2013-04-03 16:52:50 2013-04-03 16:52:50 no
file.info("df.RData") size isdir mode mtime ctime atime exe df.RData 374 FALSE 666 2013-04-03 17:19:39 2013-04-03 16:56:50 2013-04-03 16:56:50 no
load("df.RData") df x y 1 a 1 2 b 2 3 c 3 4 d 4 5 e 5
Alguém sabe dizer o que está acontecendo?
Obrigado,
Alexandre
_______________________________________________ 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.