Alexandre,
se me permite, acho que tenho uma solução mais simples, sem usar o pacode dplyr e sem transformar o objeto de matrix para data.frame.

Segue abaixo:

# 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



Abraços,
Paulo

Em 7 de outubro de 2015 18:48, ASANTOS <alexandresantosbr@yahoo.com.br> escreveu:
Caros Listeiros,

             Estou tentando criar uma rotina para primeiro sortear 20% de linhas de um data frame com 10 variáveis e n=100, e com o resultado desse sorteio eu gostaria de sortear 10% dos valores independente da variável e substituir por NA. No entanto, estou com dois problemas para realizar isso: 1) O objeto sampl.data.10 criado que corresponde ao sorteio de 10% dos valores não corresponde ao objeto que originou o sorteio (sampl.n.20); e 2) Quando faço o sorteio de 10% dos valores e substituo por NA, perco a informação do identificador da amostra ou seja meu dados$ID, segue CRM abaixo, alguém poderia me dar um help?


#Variáveis artificiais
dados<-runif(1000)
dados<-(dados*100)+c(1:500, 500:1)
dados<-matrix(dados,nrow=50,ncol=10)
dados<-as.data.frame(dados)
names(dados)<-c("var1", "var2","var3","var4","var5","var6","var7","var8","var9","var10")
dados$ID<-1:length(dados[,1])
dados<-as.data.frame(dados)

#Pacote
require(dplyr)

## Seleciono 20% das linhas do objeto dados
sampl.n.20<-sample_frac(dados, 0.2)
sampl.n.20

##Seleciono 10% de valores independente da variável
n.data<-0.1*(length(sampl.20[,1])*length(sampl.20[1,]))
sampl.data.10<-matrix(sample(c(NA, sampl.20[,1]),length(sampl.20[,1])*length(sampl.20[1,]), replace = TRUE), n.data)
sampl.data.10

Obrigado,

--
======================================================================
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@yahoo.com.br
        alexandre.santos@cas.ifmt.edu.br
Lattes: http://lattes.cnpq.br/1360403201088680
======================================================================

_______________________________________________
R-br mailing list
R-br@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 fornea cdigo mnimo reproduzvel.