[R-br] Sorteio aleatório de valores e substituir por NA [RESOLVIDO]

ASANTOS alexandresantosbr em yahoo.com.br
Quarta Outubro 7 22:02:55 BRT 2015


Muito obrigado Paulo,

         Problema resolvido, o código ficou muito mais limpo e eficiente,

Abraços,

-- 
======================================================================
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
======================================================================



Em 07/10/2015 20:43, Paulo Nogueira Starzynski escreveu:
> # Definir o número de linhas e colunas da base original
> n <- 100
> nCols <- 10
>
> # Construir a base original
> dados <- matrix(runif(n * nCols), nrow = n)
> dados <- cbind(1:nrow(dados), dados)
> nomeVars <- c("var1", 
> "var2","var3","var4","var5","var6","var7","var8","var9","var10")
> attributes(dados)$dimnames <- list(1:nrow(dados), c("ID", nomeVars))
> head(dados)
>
> # Sorteio de 20% das linhas
> nLinhas <- n * 0.2
> amostra20 <- sample(1:nrow(dados), size = nLinhas, replace = F)
> amostra20 <- amostra20[order(amostra20)]
> dados20 <- dados[amostra20, ]
>
> # Sorteio de 10% dos valores da subamostra
> nValores <- (nLinhas * nCols) * 0.1
> amostra10 <- sample(1:(nLinhas * nCols), size = nValores, replace = F)
> amostra10 <- amostra10[order(amostra10)]
>
> # substituir os valores por NA
> dados20[, nomeVars][amostra10] <- NA
> dados20



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