
Caros amigos, Como salvar a lista gerada pelo código abaixo, utilizando a função write.table? Estou encontrando o erro abaixo! set.seed(200) dados<-rnorm(8836,36,6) NL=94 NC=94 Xmin=0 Xmax=64 Ymin=0 Ymax=64 Zmin=min(dados) Zmax=max(dados) ma<-matrix(dados,ncol=NC) mc<-matrix(c(NL, Xmin,Ymin,Zmin,NC,Xmax,Ymax,Zmax),ncol=2) lac<-list(mc,ma) write.table(lac,"C://r//Saida.txt",sep="\t",col.names=F,row.names=F) Erro em data.frame(c(94, 0, 0, 12.7834627990016, 94, 64, 64, 61.968478487737 : arguments imply differing number of rows: 4, 94 Abraços a todos. Alan Rodrigo Panosso

2011/4/11 Alan Rodrigo Panosso <arpanosso@yahoo.com.br>:
Como salvar a lista gerada pelo código abaixo, utilizando a função write.table?
Estou encontrando o erro abaixo!
[...]
lac<-list(mc,ma)
write.table(lac,"C://r//Saida.txt",sep="\t",col.names=F,row.names=F)
Erro em data.frame(c(94, 0, 0, 12.7834627990016, 94, 64, 64, 61.968478487737 : arguments imply differing number of rows: 4, 94
write.table escreve tabelas, ou seja, dados em formato "retangular". O objeto "lac" é do tipo list, e não pode ser convertida em data.frame porque os componentes da lista têm tamanhos diferentes. Uma opção é usar save() para salvar o objeto no formato binário do R (.RData) ou dput() se quiser salvar como arquivo de texto. Exemplos: dput(lac, file = "Saida.R") save(lac, file = "Saida.RData") Veja também a ajuda de load() e dget() -- Jakson

Jakson, muito obrigado, valeu pela explicação. Nesse caso então, deveríamos igualar o número de colunas dos objetos para poder salvá-los. mcdf<-as.data.frame(mc) mcdf[,3:NC]<-NA mac<-rbind(mcdf,ma) Desculpe-me pela pergunta, mas existe alguma função/método, para preencher os arquivos com espaços ou tabulações, sem resultar em NA no arquivo de saída? set.seed(200) dados<-rnorm(8836,36,6) NL=94 NC=94 Xmin=0 Xmax=64 Ymin=0 Ymax=64 Zmin=min(dados) Zmax=max(dados) ma<-matrix(dados,ncol=NC) mc<-matrix(c(NL, Xmin,Ymin,Zmin,NC,Xmax,Ymax,Zmax),ncol=2) mcdf<-as.data.frame(mc) mcdf[,3:NC]<-NA mac<-rbind(mcdf,ma) write.table(mac,"C://r//Saida.txt",sep="\t",col.names=F,row.names=F) Abraços -----Mensagem original----- De: r-br-bounces@listas.c3sl.ufpr.br [mailto:r-br-bounces@listas.c3sl.ufpr.br] Em nome de Jakson A. Aquino Enviada em: segunda-feira, 11 de abril de 2011 18:38 Para: r-br@listas.c3sl.ufpr.br Assunto: Re: [R-br] Problemas write.table 2011/4/11 Alan Rodrigo Panosso <arpanosso@yahoo.com.br>:
Como salvar a lista gerada pelo código abaixo, utilizando a função write.table?
Estou encontrando o erro abaixo!
[...]
lac<-list(mc,ma)
write.table(lac,"C://r//Saida.txt",sep="\t",col.names=F,row.names=F)
Erro em data.frame(c(94, 0, 0, 12.7834627990016, 94, 64, 64, 61.968478487737 : arguments imply differing number of rows: 4, 94
write.table escreve tabelas, ou seja, dados em formato "retangular". O objeto "lac" é do tipo list, e não pode ser convertida em data.frame porque os componentes da lista têm tamanhos diferentes. Uma opção é usar save() para salvar o objeto no formato binário do R (.RData) ou dput() se quiser salvar como arquivo de texto. Exemplos: dput(lac, file = "Saida.R") save(lac, file = "Saida.RData") Veja também a ajuda de load() e dget() -- Jakson _______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br

2011/4/11 Alan Rodrigo Panosso <arpanosso@yahoo.com.br>:
Nesse caso então, deveríamos igualar o número de colunas dos objetos para poder salvá-los. mcdf<-as.data.frame(mc) mcdf[,3:NC]<-NA mac<-rbind(mcdf,ma)
Um data.frame pode ter qualquer quantidade de colunas, mas todas têm que ter o mesmo comprimento. Então, a rigor, o que precisaria ser feito seria igualar o número de elementos das colunas. Mas, se os objetos que compõem a list têm comprimentos diferentes, ela provavelmente não deve ser convertida em data.frame.
Desculpe-me pela pergunta, mas existe alguma função/método, para preencher os arquivos com espaços ou tabulações, sem resultar em NA no arquivo de saída?
Olhando seu código, não percebi qual é o seu objetivo, mas para não ter o texto NA no arquivo de saída gerado por write.table, use o argumento "na": write.table(mac, "C://r//Saida.txt", sep="\t", col.names=F, row.names=F, na = "") -- Jakson

Senhores, boa noite Uma outra alternativa menos elegante é a função sink(). att, FH 2011/4/11 Jakson A. Aquino <jaksonaquino@gmail.com>
2011/4/11 Alan Rodrigo Panosso <arpanosso@yahoo.com.br>:
Nesse caso então, deveríamos igualar o número de colunas dos objetos para poder salvá-los. mcdf<-as.data.frame(mc) mcdf[,3:NC]<-NA mac<-rbind(mcdf,ma)
Um data.frame pode ter qualquer quantidade de colunas, mas todas têm que ter o mesmo comprimento. Então, a rigor, o que precisaria ser feito seria igualar o número de elementos das colunas. Mas, se os objetos que compõem a list têm comprimentos diferentes, ela provavelmente não deve ser convertida em data.frame.
Desculpe-me pela pergunta, mas existe alguma função/método, para preencher os arquivos com espaços ou tabulações, sem resultar em NA no arquivo de saída?
Olhando seu código, não percebi qual é o seu objetivo, mas para não ter o texto NA no arquivo de saída gerado por write.table, use o argumento "na":
write.table(mac, "C://r//Saida.txt", sep="\t", col.names=F, row.names=F, na = "")
-- Jakson _______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br

Fernando, muito obrigado pela opção! Vou tentar a função sink(). Abraços e até mais Alan De: r-br-bounces@listas.c3sl.ufpr.br [mailto:r-br-bounces@listas.c3sl.ufpr.br] Em nome de Fernando Henrique Toledo Enviada em: segunda-feira, 11 de abril de 2011 20:25 Para: r-br@listas.c3sl.ufpr.br Assunto: Re: [R-br] RES: Problemas write.table Senhores, boa noite Uma outra alternativa menos elegante é a função sink(). att, FH 2011/4/11 Jakson A. Aquino <jaksonaquino@gmail.com> 2011/4/11 Alan Rodrigo Panosso <arpanosso@yahoo.com.br>:
Nesse caso então, deveríamos igualar o número de colunas dos objetos para poder salvá-los. mcdf<-as.data.frame(mc) mcdf[,3:NC]<-NA mac<-rbind(mcdf,ma)
Um data.frame pode ter qualquer quantidade de colunas, mas todas têm que ter o mesmo comprimento. Então, a rigor, o que precisaria ser feito seria igualar o número de elementos das colunas. Mas, se os objetos que compõem a list têm comprimentos diferentes, ela provavelmente não deve ser convertida em data.frame.
Desculpe-me pela pergunta, mas existe alguma função/método, para preencher os arquivos com espaços ou tabulações, sem resultar em NA no arquivo de saída?
Olhando seu código, não percebi qual é o seu objetivo, mas para não ter o texto NA no arquivo de saída gerado por write.table, use o argumento "na": write.table(mac, "C://r//Saida.txt", sep="\t", col.names=F, row.names=F, na = "") -- Jakson _______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br

Perfeito Jakson, perfeito. Tudo resolvido!!! O objetivo é converter arquivos gerados pelo processo de krigagem entre os programas WinGSLib e SURFER. Essa conversão vai agilizar o trabalho do nosso grupo de pesquisa (http://www.csme.com.br/). Bom, mais uma vez, muito obrigado pelas informações e, principalmente, pela imensa ajuda. Abraços Alan -----Mensagem original----- De: r-br-bounces@listas.c3sl.ufpr.br [mailto:r-br-bounces@listas.c3sl.ufpr.br] Em nome de Jakson A. Aquino Enviada em: segunda-feira, 11 de abril de 2011 19:55 Para: r-br@listas.c3sl.ufpr.br Assunto: Re: [R-br] RES: Problemas write.table 2011/4/11 Alan Rodrigo Panosso <arpanosso@yahoo.com.br>:
Nesse caso então, deveríamos igualar o número de colunas dos objetos para poder salvá-los. mcdf<-as.data.frame(mc) mcdf[,3:NC]<-NA mac<-rbind(mcdf,ma)
Um data.frame pode ter qualquer quantidade de colunas, mas todas têm que ter o mesmo comprimento. Então, a rigor, o que precisaria ser feito seria igualar o número de elementos das colunas. Mas, se os objetos que compõem a list têm comprimentos diferentes, ela provavelmente não deve ser convertida em data.frame.
Desculpe-me pela pergunta, mas existe alguma função/método, para preencher os arquivos com espaços ou tabulações, sem resultar em NA no arquivo de saída?
Olhando seu código, não percebi qual é o seu objetivo, mas para não ter o texto NA no arquivo de saída gerado por write.table, use o argumento "na": write.table(mac, "C://r//Saida.txt", sep="\t", col.names=F, row.names=F, na = "") -- Jakson _______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
participantes (3)
-
Alan Rodrigo Panosso
-
Fernando Henrique Toledo
-
Jakson A. Aquino