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@listas.c3sl.ufpr.br
https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br