<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
<title></title>
</head>
<body text="#000000" bgcolor="#ffffff">
Obrigado pela resposta,<br>
Já havia descoberto o problema. No fim achei que usando write.table
ficou melhor.<br>
<br>
<br>
Em 6/6/2011 3:37 PM, Paulo Justiniano escreveu:
<blockquote
cite="mid:alpine.DEB.2.00.1106061537140.19919@pataxo.est.ufpr.br"
type="cite">Luciano
<br>
<br>
no meu exemplo faltou o print()
<br>
<br>
na penultima linha voce precisa fazer:
<br>
<br>
<br>
print(sub)
<br>
<br>
On Fri, 3 Jun 2011, Luciano Ramos Gonçalves wrote:
<br>
<br>
<blockquote type="cite">Tentando criar os arquivos .txt esbarrei
em um problema:
<br>
<br>
for (i in levels(testes$V2)){
<br>
sub <-subset(testes,V2==i)
<br>
sink(paste("01","-",i, ".txt", sep=" "))
<br>
sub
<br>
sink()
<br>
}
<br>
<br>
No código acima, os arquivos .txt são criados, mas todos ficam
vazios. Porque será?
<br>
<br>
Luciano.
<br>
<br>
Em 6/2/2011 12:57 PM, Paulo Justiniano escreveu:
<br>
A seleção pode ter critérios multiplos, portanto
<br>
<br>
dat[dat$V1=="AAA" & dat$V2 == "AAA", ]
<br>
vai funcionar
<br>
<br>
em cima deste fato voce pode usar outras funcoes ou mesmo
dentro de um loop.
<br>
O comando acima é equivalente a
<br>
<br>
subset(dat, V1 == "AAA" & V2 == "AAA")
<br>
<br>
um codigo (nao muito otimizado por usar loop duplo...)
seria:
<br>
<br>
for (i in levels(dat$V1)){
<br>
for (j in levels(dat$V2)){
<br>
sub <- subset(dat, V1==i & V2 == j)
<br>
sink(paste(i, "-", j, ".txt", sep=T)
<br>
sub
<br>
sink()
<br>
}}
<br>
<br>
ou talvez trocar sink() por write.table
<br>
<br>
Agora, uma alternativa seria:
<br>
<br>
by(dat, list(dat$V1, dat$V2), FUN=function(x){ x})
<br>
<br>
onde em voce escreveria a função para gravar os arquivos
<br>
<br>
veja a saida do comandop acima para os seguintes dados:
<br>
<br>
dat <- data.frame(V1 = factor(sample(LETTERS[1:3], 10,
rep=T)), V2 = factor(sample(letters[1:3], 10, rep=T)), 1:10)
<br>
<br>
<br>
<br>
<br>
<br>
On Thu, 2 Jun 2011, Luciano Ramos Gonçalves wrote:
<br>
<br>
Tenho um arquivo com 11 colunas.
<br>
A coluna 2 (V2) tem aproximadamente 300 levels. O
que eu pretendo é separar todo o arquivo conforme esses
<br>
leveis.
<br>
Ou seja, sendo o level 1 "AAA", eu quero extrair
todas as linhas cujo valor na segunda coluna seja "AAA" e
<br>
gravar em
<br>
um novo arquivo, usando "sink()" por exemplo.
<br>
Como selecionar as linhas conforme o valor do level
da segunda coluna?
<br>
<br>
Grato,
<br>
<br>
Luciano.
<br>
<br>
<br>
<br>
_______________________________________________
<br>
R-br mailing list
<br>
<a class="moz-txt-link-abbreviated" href="mailto:R-br@listas.c3sl.ufpr.br">R-br@listas.c3sl.ufpr.br</a>
<br>
<a class="moz-txt-link-freetext" href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a>
<br>
<br>
<br>
<br>
<br>
</blockquote>
<pre wrap="">
<fieldset class="mimeAttachmentHeader"></fieldset>
_______________________________________________
R-br mailing list
<a class="moz-txt-link-abbreviated" href="mailto:R-br@listas.c3sl.ufpr.br">R-br@listas.c3sl.ufpr.br</a>
<a class="moz-txt-link-freetext" href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a>
</pre>
</blockquote>
<br>
</body>
</html>