[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