[R] Randomly selecting one row for each factor level [Broadca st]
Kelly Hildner
Kelly.Hildner at noaa.gov
Thu Apr 20 21:54:40 CEST 2006
This worked for my example data frame but not when I used it on my
actual data frame because some of the levels of x have only one element.
However, when I replace 'sample' with 'some' (from the car package),
it works like a charm!
Many thanks to Andy and Gabor for their help!
Kelly
Liaw, Andy wrote:
> The following should work:
>
>
>>dfr.samp <- dfr[tapply(1:nrow(dfr), dfr$x, sample, 1),]
>>dfr.samp
>
> x y z
> 10 a 10 J
> 2 b 2 B
> 9 c 9 I
>
> Andy
>
> From: Kelly Hildner
>
>>I don't use R much, and I have been unable to figure out how
>>to get the
>>subset of my data frame that I would like.
>>
>>For example, if this were my data frame:
>>
>> > dfr <- data.frame(x=rep(letters[1:3], 4), y=(1:12),
>>z=(LETTERS[1:12])) > dfr
>> x y z
>>1 a 1 A
>>2 b 2 B
>>3 c 3 C
>>4 a 4 D
>>5 b 5 E
>>6 c 6 F
>>7 a 7 G
>>8 b 8 H
>>9 c 9 I
>>10 a 10 J
>>11 b 11 K
>>12 c 12 L
>>
>>I would like to randomly select one row for each level of the
>>factor x
>>and create a new data frame with the results. For example,
>>the result
>>might be:
>>
>> x y z
>>1 a 1 A
>>5 b 5 E
>>6 c 6 F
>>
>>Any help would be greatly appreciated!
>>
>>Thanks,
>>Kelly
>>
>>--
>>K. Kelly Hildner, Ph.D.
>>NOAA Fisheries
>>Southwest Fisheries Science Center
>>110 Shaffer Rd.
>>Santa Cruz, CA 95060
>>
>>______________________________________________
>>R-help at stat.math.ethz.ch mailing list
>>https://stat.ethz.ch/mailman/listinfo/r-help
>>PLEASE do read the posting guide!
>>http://www.R-project.org/posting-guide.html
>>
>>
>
>
>
> ------------------------------------------------------------------------------
> Notice: This e-mail message, together with any attachment...{{dropped}}
More information about the R-help
mailing list