Re: [R-br] Salvar e ler de bando de dados

2017-03-23 Por tôpico FHRB Toledo via R-br
Use tanto no write.table() quanto no read.table() a função paste0() para
gerar o nome variando conforme i:

> write.table(Y, paste0(i, '"txt"))

E para ler:

BD_i <- read.table(paste0(i, ".txt") header = TRUE)

Espero ter ajudado.

att,
FH

2017-03-23 5:56 GMT-06:00 Adriele Giaretta Biase via R-br <
r-br@listas.c3sl.ufpr.br>:

>
> Olá pessoal,
>
>
>
> eu estou trabalhando no R com conjunto de dados muito grande (numa fase de
> teste) e a tendência é que essa banco de dados aumente ainda mais, numa
> próxima etapa que não será teste. E em algumas de minhas programações, o
> R retornou mensagem de aviso dizendo que não podia alocar o vetor de
> tamanho de 3.7 GB.
>
> Dessa forma, ao invés de concatenar uma matriz em baixo da outra num
> objeto criado (onde ele me retorna que não foi capaz de armazenar tudo), eu
> gostaria de ir salvando cada matriz gerada de resultado no diretório local.
>
> Minha dúvida, é como criar esse algoritmo de forma que eu consiga salvar
> dentro de um loop, data.frames com nomes diferentes, sem que ocorra
> substituição de um data.frame pelo outro.
>
> Eu criei um código mínimo (de forma que vocês possam me dar alguma ajuda),
> e eu possa adaptar para a situação que estou trabalhando. Esse código está
> substituindo o data.frame a cada rodada dentro do loop. Eu queria que o
> nome do data.frame alterasse para que guardasse todos os resultados com
> nomes diferentes, acompanhando a variação do loop (1,2, ..., N):
>
>
>
> library(MASS)
>
> salva_BD_i <- function(N){
>
>   for (i in 1:N){
>
> p  <- 30# numero de variáveis a serem geradas (p)
>
> ME <- rep(1, p)
>
> rho<- 0.5 # correlacao
>
> sigma2 <- 1
>
> sigma  <- sigma2 * ((1-rho)*diag(p)+rho*matrix(1, p, p))
>
> n <- 1
>
> Y  <- mvrnorm(n, ME, sigma)
>
> write.table(Y, "i.txt")
>
> }
>
> }
>
>
>
> N=3
>
> salva = salva_BD_i(N)
>
>
>
>
>
> Numa segunda etapa, eu precisaria de ler (puxar todos os data.frame para
> dentro de um objeto do R, num loop. Também criei um código mínimo
> executável, mas acontece o mesmo, o índice do loop não é processado dentro
> do read.table:
>
> > setwd('C:\\Users\\Adriele\\ teste')
>
>
>
> > dir()
>
>  [1] "1.txt"   "2.txt" "3.txt" "4.txt" "5.txt" "6.txt"
> "7.txt" "8.txt" "9.txt"   "10.txt" "Adriele.R"
>
>
>
> Leia_BD_i <- function(N){
>
>   aux= c()
>
>   for (i in 1:N){
>
> BD_i <- read.table("i.txt",  header = TRUE)
>
> media = apply(BD_i, 2, mean)
>
> aux = rbind(aux, media)
>
>   }
>
>   return(medias = aux)
>
> }
>
>
>
> N=10
>
> Leitura = Leia_BD_i(N)
>
>
> Error in file(file, "rt") : cannot open the connection
>
> In addition: Warning message:
>
> In file(file, "rt") : cannot open file 'i.txt': No such file or directory
>
> Agradeço se alguém puder contribuir,
>
> --
> Adriele Giaretta Biase.
> Mestre em  Estatística e Experimentação Agropecuária - UFLA.
> Doutora em Estatística e Experimentação Agronômica - ESALQ/ USP
> Contato: (19) 98861-0619.
>
> ___
> 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.
>
___
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.

[R-br] Salvar e ler de bando de dados

2017-03-23 Por tôpico Adriele Giaretta Biase via R-br
Olá pessoal,



eu estou trabalhando no R com conjunto de dados muito grande (numa fase de
teste) e a tendência é que essa banco de dados aumente ainda mais, numa
próxima etapa que não será teste. E em algumas de minhas programações, o R
retornou mensagem de aviso dizendo que não podia alocar o vetor de tamanho
de 3.7 GB.

Dessa forma, ao invés de concatenar uma matriz em baixo da outra num objeto
criado (onde ele me retorna que não foi capaz de armazenar tudo), eu
gostaria de ir salvando cada matriz gerada de resultado no diretório local.

Minha dúvida, é como criar esse algoritmo de forma que eu consiga salvar
dentro de um loop, data.frames com nomes diferentes, sem que ocorra
substituição de um data.frame pelo outro.

Eu criei um código mínimo (de forma que vocês possam me dar alguma ajuda),
e eu possa adaptar para a situação que estou trabalhando. Esse código está
substituindo o data.frame a cada rodada dentro do loop. Eu queria que o
nome do data.frame alterasse para que guardasse todos os resultados com
nomes diferentes, acompanhando a variação do loop (1,2, ..., N):



library(MASS)

salva_BD_i <- function(N){

  for (i in 1:N){

p  <- 30# numero de variáveis a serem geradas (p)

ME <- rep(1, p)

rho<- 0.5 # correlacao

sigma2 <- 1

sigma  <- sigma2 * ((1-rho)*diag(p)+rho*matrix(1, p, p))

n <- 1

Y  <- mvrnorm(n, ME, sigma)

write.table(Y, "i.txt")

}

}



N=3

salva = salva_BD_i(N)





Numa segunda etapa, eu precisaria de ler (puxar todos os data.frame para
dentro de um objeto do R, num loop. Também criei um código mínimo
executável, mas acontece o mesmo, o índice do loop não é processado dentro
do read.table:

> setwd('C:\\Users\\Adriele\\ teste')



> dir()

 [1] "1.txt"   "2.txt" "3.txt" "4.txt" "5.txt" "6.txt"
"7.txt" "8.txt" "9.txt"   "10.txt" "Adriele.R"



Leia_BD_i <- function(N){

  aux= c()

  for (i in 1:N){

BD_i <- read.table("i.txt",  header = TRUE)

media = apply(BD_i, 2, mean)

aux = rbind(aux, media)

  }

  return(medias = aux)

}



N=10

Leitura = Leia_BD_i(N)


Error in file(file, "rt") : cannot open the connection

In addition: Warning message:

In file(file, "rt") : cannot open file 'i.txt': No such file or directory

Agradeço se alguém puder contribuir,

-- 
Adriele Giaretta Biase.
Mestre em  Estatística e Experimentação Agropecuária - UFLA.
Doutora em Estatística e Experimentação Agronômica - ESALQ/ USP
Contato: (19) 98861-0619.
___
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.