[R-br] Sub-amostragem

salah salah3.1416 em gmail.com
Terça Agosto 30 01:08:11 BRT 2016


Caro

Não consegui reproduzir seu erro. Seu código com loop <for> funcionou 
perfeitamente
Fiz uma amostragem com 20000 observações.
Encapsulei numa função simples onde se tem a opção do n amostral, 
com e sem reposição

segue sugestões:

Id = 1:20000
X = 
rep(c("A","B","A","C","A","A","B","A","C","A","A","B","A","C","A","A","B","A","C","A"), 
1000)
Dados = data.frame(Id,X) ## Dados

## sugestão 1
amostragem1 = function(Dados, n=5, replace=TRUE)
{
	IdDados = sample(Dados[,1], n, replace = replace)
	DadosAm = NULL
	for (i in 1:n) DadosAm = rbind(DadosAm, Dados[Id == IdDados[i],])
	return(DadosAm)
}##end amostragem1

## amostragem com n = 5 e sem repetição
amostragem1(Dados, n=5)

## sugestão 2
amostragem2 = function(Dados, n=5, replace=TRUE)
{
	IdDados = sample(Dados[,1], n, replace = replace)
	return(Dados[Dados[,1] %in% IdDados,])
}##end amostragem2

## amostragem com n = 5 e sem repetição
amostragem2(Dados, n=5)

saudações

Em Seg, Ago 29, 2016 em 4:56 , Julimar Pinto via R-br 
<r-br em listas.c3sl.ufpr.br> escreveu:
> Dependendo do tipo de amostragem, costumo utilizar a package 
> "sampling". Que, no caso de amostras complexas (com ou sem 
> reposição), trabalha de modo bastante conjugado com a package 
> "survey".
> 
> Saudações,
> 
> Julimar
> 
> Muito bom isso: Nunca votar no PSDB/DEM, muito bom mesmo!
> 
> Em 28/08/2016 20:29, "Marcos Bissoli via R-br" 
> <r-br em listas.c3sl.ufpr.br> escreveu:
>> Prezados,
>> 
>> Peço desculpas de antemão se meu problema é de extrema 
>> trivialidade ou se o tema já fora aqui debatido. No entanto, 
>> pesquisei os arquivos do fórum e não encontrei, dessa vez, uma 
>> solução.
>> 
>> Gerei um código simplificado de meu problema. Meu intuito é 
>> extrair uma sub-amostra de uma amostra de dados já coletados para 
>> fins de análise com melhor equilíbrio entre os grupos observados. 
>> Assim, elaborei algo semelhante com o abaixo.
>> 
>> Id <- 1:20
>> X <- 
>> c("A","B","A","C","A","A","B","A","C","A","A","B","A","C","A","A","B","A","C","A")
>> Dados <- data.frame(Id,X)
>> IdDados <- sample(Dados$Id,5,replace = FALSE)
>> DadosAm <- Dados[id==IdDados[1],]
>> for (i in 2:5) DadosAm <- rbind(DadosAm,Dados[id==IdDados[i],])
>> DadosAm
>> 
>> Este código funciona, e consigo extrair uma sub-amostra aleatória 
>> de n1=5 a partir de uma amostra inicial de n=20 em data.frame.
>> 
>> No entanto, meu real problema é gerar uma sub-amostra de n1=88 em 
>> uma amostra inicial de n=1668. Mas, quando tento fazer com tais 
>> dimensões a sub-amostra gera uma série de NA's, que não existem 
>> na amostra original.
>> 
>> Chequei o funcionamento na amostra real e maior, e percebi que o 
>> primeiro Id de IdDados não corresponde ao Id de Dados adicionado 
>> já no primeiro comando de criação de DadosAm.
>> 
>> Creio que seja algum erro meu de implementação, mas cheguei a 
>> fazer testes com simulações de n e n1 maiores e deram certo. Mas 
>> quando vou para o meu banco real permanece o problema.
>> 
>> Desde já, agradeço qualquer ajuda, e reitero minhas desculpas pela 
>> possível trivialidade da dúvida.
>> 
>> Saudações acadêmicas,
>> 
>> 
>> --
>> MARCOS BISSOLI
>> 
>> Faculdade de Nutrição
>> Universidade Federal de Alfenas
>> 
>> Blog: bocademiamaldita.blogspot.com/
>> E-mail: mbissoli em gmail.com
>> Twitter: #mbissoli
>> 
>> Alfenas, Minas Gerais, Brasil
>> 
>> 
>> *****Pense na Natureza antes de Imprimir*****
>> Divulgue ON-LINE
>> 
>> Eu apoio a ENEN "na luta por um Brasil sem fome"
>> 
>> "por ĉiu popolo ties propran lingvon, por ĉiuj popoloj la 
>> esperantan"
>> (para cada povo sua própria língua, para todos os povos o 
>> Esperanto)
>> 
>> E nunca votarei no PSDB/DEM!
>> 
>> _______________________________________________
>> R-br mailing list
>> R-br em 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.
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20160830/f887dc8f/attachment-0001.html>


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