ATM*_*hew 16 row r subset random-sample
与此问题相关.
gender <- c("F", "M", "M", "F", "F", "M", "F", "F")
age <- c(23, 25, 27, 29, 31, 33, 35, 37)
mydf <- data.frame(gender, age)
mydf[ sample( which(mydf$gender=='F'), 3 ), ]
Run Code Online (Sandbox Code Playgroud)
不是选择多行(上面的情况是3),如何用"F"随机选择20%的行?那么在带有"F"的五行中,如何随机抽样20%的这些行.
Ben*_*Ben 14
这个怎么样:
mydf[ sample( which(mydf$gender=='F'), round(0.2*length(which(mydf$gender=='F')))), ]
Run Code Online (Sandbox Code Playgroud)
其中0.2是你的20%,length(which(mydf$gender=='F'))
是行的总行数F
小智 14
您可以使用包中的sample_frac()
功能dplyr
.
例如,如果您想在每组中抽样20%:
mydf %>% sample_frac(.2)
Run Code Online (Sandbox Code Playgroud)
如果您想在每个性别组中抽样20%:
mydf %>% group_by(gender) %>% sample_frac(.2)
Run Code Online (Sandbox Code Playgroud)