[R-br] RES: Função usando sample [RESOLVIDO]

Mauro Sznelwar sznelwar em uol.com.br
Terça Maio 20 23:32:42 BRT 2014


Nâo consegui rodar, veja o que aconteceu:

> set.seed(765)
> seqs=sort(sample(1:nopara[1],tam)) # o sort só ordena for(i in
> 2:length(nopara))seqs=c(seqs,sort(sample((nopara[i-1]+1):nopara[i],tam)))
Error: unexpected ')' in "2:length(nopara))"
> res1= dados[seqs,]
> set.seed(765)
> res2 = do.call(rbind, lapply(split(dados, dados$abf), function(x)
x[sample(nrow(x), tam),]))
 > res2o=res2[ order(res2$nobs), ]
> res2o==res1 #iguais
Error in Ops.data.frame(res2o, res1) : 
  == only defined for equally-sized data frames




Muito obrigado Robert,

       Problema resolvido, segue solução abaixo para registro:

##
proj.talhao<-sort(rep(c("tamandua","itapagi","corrego"),100))
n.talhao<-sort(rep(c("144","256","356","144","301","180"),50))
dados<-as.data.frame(cbind(proj.talhao,n.talhao))
dados$medida1<-rnorm(nrow(dados),300)
dados$medida2<-rnorm(nrow(dados),300)
dados$medida3<-rnorm(nrow(dados),300)
dados$ab<- interaction(dados$proj.talhao, dados$n.talhao)
head(dados)
##

###

dados$nobs=1:length(dados$ab) #só pra conferir
str(dados$ab)  # na verdade vc não tem 15 níveis, só 5 com casos
dados$abf=factor(dados$ab) # eliminar níveis não usados
nopar=table(dados$abf) # casos por fator
nopara=cumsum(nopar) # acumular casos
tam=40  #amostra
set.seed(765)
seqs=sort(sample(1:nopara[1],tam)) # o sort só ordena
for(i in 
2:length(nopara))seqs=c(seqs,sort(sample((nopara[i-1]+1):nopara[i],tam)))
res1= dados[seqs,]

set.seed(765)
res2 = do.call(rbind, lapply(split(dados, dados$abf), function(x) 
x[sample(nrow(x), tam),]))

res2o=res2[ order(res2$nobs), ]
res2o==res1 #iguais

###
Em 20/05/2014 18:29, Robert Iquiapaza escreveu:
> ##
> proj.talhao<-sort(rep(c("tamandua","itapagi","corrego"),100))
> n.talhao<-sort(rep(c("144","256","356","144","301","180"),50))
> dados<-as.data.frame(cbind(proj.talhao,n.talhao))
> dados$medida1<-rnorm(nrow(dados),300)
> dados$medida2<-rnorm(nrow(dados),300)
> dados$medida3<-rnorm(nrow(dados),300)
> dados$ab<- interaction(dados$proj.talhao, dados$n.talhao)
> head(dados)
> ##

-- 
======================================================================
Alexandre dos Santos
Proteção Florestal
IFMT - Instituto Federal de Educação, Ciência e Tecnologia de Mato Grosso
Campus Cáceres
Caixa Postal 244
Avenida dos Ramires, s/n
Bairro: Distrito Industrial
Cáceres - MT                      CEP: 78.200-000
Fone: (+55) 65 8132-8112 (TIM)   (+55) 65 9686-6970 (VIVO)
e-mails:alexandresantosbr em yahoo.com.br
         alexandre.santos em cas.ifmt.edu.br
Lattes: http://lattes.cnpq.br/1360403201088680
======================================================================


---
Este email está limpo de vírus e malwares porque a proteção do avast! Antivírus está ativa.
http://www.avast.com
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20140520/113019dd/attachment.html>


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