[R] Sample of a subsample

Bert Gunter bgunter.4567 at gmail.com
Mon Sep 25 20:03:32 CEST 2017


For personal aesthetic reasons, I changed the name "data" to "dat".

Your code, with a slight modification:

set.seed (1357)  ## for reproducibility
dat <- data.frame(var1=seq(1:40), var2=seq(40,1))
dat$sampleNo <- 0
idx <- sample(seq(1,nrow(dat)), size=10, replace=F)
dat[idx,"sampleNo"] <-1

## yielding
> dat

   var1 var2 sampleNo
1     1   40        0
2     2   39        1
3     3   38        0
4     4   37        0
5     5   36        0
6     6   35        1
7     7   34        0
8     8   33        0
9     9   32        0
10   10   31        0
11   11   30        0
12   12   29        0
13   13   28        0
14   14   27        0
15   15   26        1
16   16   25        1
17   17   24        0
18   18   23        0
19   19   22        0
20   20   21        1
21   21   20        0
22   22   19        1
23   23   18        0
24   24   17        1
25   25   16        0
26   26   15        1
27   27   14        0
28   28   13        0
29   29   12        0
30   30   11        0
31   31   10        0
32   32    9        0
33   33    8        0
34   34    7        0
35   35    6        1
36   36    5        0
37   37    4        1
38   38    3        0
39   39    2        0
40   40    1        0

## This is basically a transcription of your specification into indexing
logic

dat <- within(dat,sampleNo[sample(var1[(var1%%2 == 0) &
sampleNo==0],10,rep=FALSE)] <- 2)

##yielding
> dat

   var1 var2 sampleNo
1     1   40        0
2     2   39        1
3     3   38        0
4     4   37        2
5     5   36        0
6     6   35        1
7     7   34        0
8     8   33        2
9     9   32        0
10   10   31        2
11   11   30        0
12   12   29        0
13   13   28        0
14   14   27        2
15   15   26        1
16   16   25        1
17   17   24        0
18   18   23        2
19   19   22        0
20   20   21        1
21   21   20        0
22   22   19        1
23   23   18        0
24   24   17        1
25   25   16        0
26   26   15        1
27   27   14        0
28   28   13        2
29   29   12        0
30   30   11        2
31   31   10        0
32   32    9        2
33   33    8        0
34   34    7        2
35   35    6        1
36   36    5        2
37   37    4        1
38   38    3        0
39   39    2        0
40   40    1        0





dat <- within(dat,sampleNo[sample(var1[(var1%%2 == 0) &
sampleNo==0],10,rep=FALSE)] <- 2)




Bert Gunter

"The trouble with having an open mind is that people keep coming along and
sticking things into it."
-- Opus (aka Berkeley Breathed in his "Bloom County" comic strip )

On Mon, Sep 25, 2017 at 10:27 AM, David Studer <studerov at gmail.com> wrote:

> Hello everybody!
>
> I have the following problem: I'd like to select a sample from a subsample
> in a dataset. Actually, I don't want to select it, but to create a new
> variable sampleNo that indicates to which sample (one or two) a case
> belongs to.
>
> Lets suppose I have a dataset containing 40 cases:
>
> data <- data.frame(var1=seq(1:40), var2=seq(40,1))
>
> The first sample (n=10) I drew like this:
>
> data$sampleNo <- 0
> idx <- sample(seq(1,nrow(data)), size=10, replace=F)
> data[idx,]$sampleNo <- 1
>
> Now, (and here my problems start) I'd like to draw a second sample (n=10).
> But this sample should be drawn from the cases that don't belong to the
> first sample only. *Additionally, "var1" should be an even number.*
>
> So sampleNo should be 0 for cases that were not drawn at all, 1 for cases
> that belong to the first sample and 2 for cases belonging to the second
> sample (= sampleNo equals 0 and var1 is even).
>
> I was trying to solve it like this:
>
> idx2<-data$var1%%2 & data$sampleNo==0
> sample(data[idx2,], size=10, replace=F)
>
> But how can I set sampleNo to 2?
>
>
> Thank you very much for your help!
>
> David
>
>         [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/
> posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>

	[[alternative HTML version deleted]]



More information about the R-help mailing list