如何使用R语言的sample函数随机抽取若干个奇数或偶数?

Python015

如何使用R语言的sample函数随机抽取若干个奇数或偶数?,第1张

#1.如果总体是自然数这样的等差数列,可以直接利用seq函数挑出奇数(或偶数):

n <- 1:100

( ji <- seq(from=1,to=100,by=2) )

( ou <- setdiff(n,ji) )

rm(ji)rm(ou)

#2.如果总体是杂乱无章的集合,可以写个小函数判断某个数的奇偶:

jishu <- function(x){

ifelse(x%%2 ==0,F,T)

}

( ji <- n[jishu(n)] )

( ou <- n[!jishu(n)] )

#通过上面的任一一种方法将总体的奇数偶数区分开,接下来就可以使用sample函数抽样了:

sample(ji,5)

你的意思是不是按照剩余n-1列进行去重啊?

如果是这种,直接用duplicated函数,例如

set.seed(1234)

df <- data.frame(x1 = sample(c("Normal","Unnormal"), 10, replace = TRUE),

x2 = sample(c("a","b"), 10,replace = TRUE),

x3 = sample(c("c","d"), 10,replace = TRUE))

df

df[!duplicated(df[,-1]),] # 按第2,3列去重后的结果

如果是要去重且必须指定第一列值是“正常”,可以用dplyr包

library(dplyr)

df %>% group_by(x2,x3) %>% filter(x1 == "Normal" &row_number() == 1) %>% ungroup() #