Criando data frame

Amigos, tenho um data frame com seq, unid e ref. Nele tenho n observações para cada seq. Eu gostaria de saber como posso fazer um "for" para gerar um data frame contendo todas as observações do 1º desses seq, depois um outro data contendo todas as observações do 2º e assim por diante. Eu teria no final tantos data frames quantos fossem os diferentes seq desse arquivo. Um exemplo para melhor compreensão. data frame arq1 seq unid ref 001 50 1000 001 150 5000 001 220 11000 001 500 1000 002 810 21500 002 450 44000 002 990 15000 o que eu quero é um código que me gere o arq2 e o arq3 com o seguinte conteúdo. arq2 seq unid ref 001 50 1000 001 150 5000 001 220 11000 001 500 1000 arq3 seq unid ref 002 810 21500 002 450 44000 002 990 15000 Obrigado, Carlos Mendonça.

Se vc so necessita separar o dataframe da pra fazer com o comando subset() #por exemplo: arq2<-subset(arq1,seq %in% 001) #ou ainda mexer no resultado final com o select arq2<-subset(arq1,seq %in% 001, select= -seq) #mais informações olha a documentação do comando que tem exemplos melhores ?subset #bem fazer o mesmo com for da mais trabalho, não sei se vc preciso so separar o data.frame ou quer fazer uma função mesmo com for... # se for fazer função melhor esperar quem entende melhor responder :) Em 4 de outubro de 2011 22:33, Carlos Mendonça <csaeslpv@centroin.com.br> escreveu:
Amigos,
tenho um data frame com seq, unid e ref. Nele tenho n observações para cada seq. Eu gostaria de saber como posso fazer um "for" para gerar um data frame contendo todas as observações do 1º desses seq, depois um outro data contendo todas as observações do 2º e assim por diante. Eu teria no final tantos data frames quantos fossem os diferentes seq desse arquivo.
Um exemplo para melhor compreensão.
data frame arq1 seq unid ref 001 50 1000 001 150 5000 001 220 11000 001 500 1000 002 810 21500 002 450 44000 002 990 15000
o que eu quero é um código que me gere o arq2 e o arq3 com o seguinte conteúdo. arq2 seq unid ref 001 50 1000 001 150 5000 001 220 11000 001 500 1000
arq3 seq unid ref 002 810 21500 002 450 44000 002 990 15000
Obrigado,
Carlos Mendonça.
_______________________________________________ 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.
-- Grato Augusto C. A. Ribas Site Pessoal: http://augustoribas.heliohost.org Lattes: http://lattes.cnpq.br/7355685961127056

Augusto, obrigado pela ajuda, mas eu necessito que ele separe automaticamente, sem que eu informe o valor de cada seq. Depois disso, eu tenho uma relação de comandos que o programa irá fazer para cada data frame gerado, ou seja, separo as observações do 1º seq em um data frame, depois executo esses comandos para ele, e assim sucessivamente, até o último data frame que terá as observações do último seq do arquivo. Carlos Mendonça. Em 4 de outubro de 2011 23:33, Carlos Mendonça <csaeslpv@centroin.com.br>escreveu:
Amigos,
tenho um data frame com seq, unid e ref. Nele tenho n observações para cada seq. Eu gostaria de saber como posso fazer um "for" para gerar um data frame contendo todas as observações do 1º desses seq, depois um outro data contendo todas as observações do 2º e assim por diante. Eu teria no final tantos data frames quantos fossem os diferentes seq desse arquivo.
Um exemplo para melhor compreensão.
data frame arq1 seq unid ref 001 50 1000 001 150 5000 001 220 11000 001 500 1000 002 810 21500 002 450 44000 002 990 15000
o que eu quero é um código que me gere o arq2 e o arq3 com o seguinte conteúdo. arq2 seq unid ref 001 50 1000 001 150 5000 001 220 11000 001 500 1000
arq3 seq unid ref 002 810 21500 002 450 44000 002 990 15000
Obrigado,
Carlos Mendonça.
-- Um abraço, Carlos Mendonça.

Opa, então é mais complicado que eu pensava. sera que rola algo assim? #Usando os dados do airquality que vem de exemplo pro comando subset for(i in levels(as.factor(airquality$Day))) print( subset(airquality, Day %in% i) ) #so não sei saberia salvar em arq1, arq2 arq3 etc. #o jeito do Benilton é mais bonito :) Em 5 de outubro de 2011 08:53, Carlos Mendonça <csaeslpv@centroin.com.br> escreveu:
Augusto, obrigado pela ajuda, mas eu necessito que ele separe automaticamente, sem que eu informe o valor de cada seq.
Depois disso, eu tenho uma relação de comandos que o programa irá fazer para cada data frame gerado, ou seja,
separo as observações do 1º seq em um data frame, depois executo esses comandos para ele, e assim sucessivamente,
até o último data frame que terá as observações do último seq do arquivo.
Carlos Mendonça.
Em 4 de outubro de 2011 23:33, Carlos Mendonça <csaeslpv@centroin.com.br> escreveu:
Amigos,
tenho um data frame com seq, unid e ref. Nele tenho n observações para cada seq. Eu gostaria de saber como posso fazer um "for" para gerar um data frame contendo todas as observações do 1º desses seq, depois um outro data contendo todas as observações do 2º e assim por diante. Eu teria no final tantos data frames quantos fossem os diferentes seq desse arquivo.
Um exemplo para melhor compreensão.
data frame arq1 seq unid ref 001 50 1000 001 150 5000 001 220 11000 001 500 1000 002 810 21500 002 450 44000 002 990 15000
o que eu quero é um código que me gere o arq2 e o arq3 com o seguinte conteúdo. arq2 seq unid ref 001 50 1000 001 150 5000 001 220 11000 001 500 1000
arq3 seq unid ref 002 810 21500 002 450 44000 002 990 15000
Obrigado,
Carlos Mendonça.
-- Um abraço,
Carlos Mendonça.
_______________________________________________ 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.
-- Grato Augusto C. A. Ribas Site Pessoal: http://augustoribas.heliohost.org Lattes: http://lattes.cnpq.br/7355685961127056

um codigo completo p o conjunto de dados imaginario seria: lapply(split(arq1, by=list(arq1$seq)), function(y) write.table(y, file=paste('saida_', unique(y$seq), '.txt', sep=''), sep='\t', quote=FALSE, row.names=FALSE)) b
participantes (3)
-
Augusto Ribas
-
Benilton Carvalho
-
Carlos Mendonça