R:筛选样本

来自OBHRM百科
Lichaoping讨论 | 贡献2021年6月30日 (三) 19:05的版本 随机抽取

(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转至: 导航搜索

根据条件筛选

1、直接筛选

newdata<- mydata[mydata$age>=40 & mydata$sex=="M"] # 从mydata数据框中选择所有年龄大于等于40,且性别为M(男)的样本。注意变量之前必须加上mydata$

或者

attach(mydata)
newdata<- mydata[ age>=40 & sex=="M"] # 从mydata数据框中选择所有年龄大于等于40,且性别为M(男)的样本。注意这时变量之前就不需要再加mydata$
detach(mydata)

2、利用subset()函数。subset函数的具体用法可以在R控制台输入:? subset。

newdata <- subset (mydata, age>=40 & sex=="M")  # 从mydata数据框中选择所有年龄大于等于40,且性别为M(男)的样本
newdata <- subset (mydata, age>=40 | sex=="M")  # 从mydata数据框中选择所有年龄大于等于40,或性别为M(男)的样本

如果想删除有缺失值的样本,只留下没有缺失值的样本。

newdata <- subset (mydata, !is.na(item3))          # 从mydata数据框中删除变量item3有缺失值的样本
newdata <- subset (mydata, !is.na(mydata[,6]))     # 从mydata数据框中删除第6个变量有缺失值的样本
newdata <- subset(mydata,complete.cases(mydata))   # 从mydata数据框中删除任何变量有缺失值的样本,也可以用na.omit(mydata)或者na.exclude(mydata)来完成

随机抽取

随机抽取需要使用sample()函数,sample()函数的使用方法,可以在R控制台输入:? sample,了解具体的使用方法。

如果您有一个数据框mydata,现在需要随机从里头抽取100个样本,则可以:

newdata <- mydata[sample(1:nrow(mydata), 100, replace=FALSE)]