[R-br] Criando arquivo com dados - Extracão

Paulo Justiniano paulojus em leg.ufpr.br
Segunda Junho 6 15:37:42 BRT 2011


Luciano

no meu exemplo faltou o print()

na penultima linha voce precisa fazer:


print(sub)

On Fri, 3 Jun 2011, Luciano Ramos Gonçalves wrote:

> Tentando criar os arquivos .txt esbarrei em um problema:
> 
> for (i in levels(testes$V2)){
> sub <-subset(testes,V2==i)
> sink(paste("01","-",i, ".txt", sep=" "))
> sub
> sink()
> }
> 
> No código acima, os arquivos .txt são criados, mas todos ficam vazios. Porque será?
> 
> Luciano.
> 
> Em 6/2/2011 12:57 PM, Paulo Justiniano escreveu:
>       A seleção pode ter critérios multiplos, portanto
>
>       dat[dat$V1=="AAA" & dat$V2 == "AAA", ]
>       vai funcionar
>
>       em cima deste fato voce pode usar outras funcoes ou mesmo dentro de um loop.
>       O comando acima é equivalente a
>
>       subset(dat, V1 == "AAA" & V2 == "AAA")
>
>       um codigo (nao muito otimizado por usar loop duplo...) seria:
>
>       for (i in levels(dat$V1)){
>         for (j in levels(dat$V2)){
>           sub <- subset(dat, V1==i & V2 == j)
>           sink(paste(i, "-", j, ".txt", sep=T)
>           sub
>           sink()
>       }}
>
>       ou talvez trocar sink() por write.table
>
>       Agora, uma alternativa seria:
>
>       by(dat, list(dat$V1, dat$V2), FUN=function(x){ x})
>
>       onde em voce escreveria a função para gravar os arquivos
>
>       veja a saida do comandop acima para os seguintes dados:
>
>       dat <- data.frame(V1 = factor(sample(LETTERS[1:3], 10, rep=T)), V2 = factor(sample(letters[1:3], 10, rep=T)), 1:10)
> 
> 
> 
> 
>
>       On Thu, 2 Jun 2011, Luciano Ramos Gonçalves wrote:
>
>             Tenho um  arquivo com 11 colunas.
>             A coluna 2 (V2) tem aproximadamente 300 levels. O que eu pretendo é separar todo o arquivo conforme esses
>             leveis.
>             Ou seja, sendo o level 1 "AAA", eu quero extrair todas as linhas cujo valor na segunda coluna seja "AAA" e
>             gravar em
>             um novo arquivo, usando "sink()" por exemplo.
>             Como selecionar as linhas conforme o valor do level da segunda coluna?
>
>             Grato,
>
>             Luciano.
> 
> 
> 
> _______________________________________________
> R-br mailing list
> R-br em listas.c3sl.ufpr.br
> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
> 
> 
> 
>


Mais detalhes sobre a lista de discussão R-br