[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