“R:筛选样本”的版本间的差异
来自OBHRM百科
Lichaoping(讨论 | 贡献) |
Lichaoping(讨论 | 贡献) (→随机抽取) |
||
第21行: | 第21行: | ||
如果您有一个数据框mydata,现在需要随机从里头抽取100个样本,则可以: | 如果您有一个数据框mydata,现在需要随机从里头抽取100个样本,则可以: | ||
− | newdata <- mydata[sample(1:nrow(mydata), 100, replace=FALSE] | + | newdata <- mydata[sample(1:nrow(mydata), 100, replace=FALSE)] |
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)]