利用R进行分析时,有时候我们需要挑选部分变量或者行数据导出,或者需要分层分析,只对一部分数据进行分析,这个时候就需要我们利用R语言生成数据子集。主要包括三个方面的子集选择:
举例:数据集data.xlsx文件中包括ID、age、gender、weight、height、BMI、WBC、RBC。
1、只选择部分变量生成子集;
#导入数据
library(readxl)
data<-read_xlsx("d:/data/data.xlsx",header=T)
#数据子集中保留ID、age 、gender、weight、height、BMI六个变量。
vars<-c("ID","age","gender","weight","height","BMI")
data1<-data[vars]
data1<-data[c("ID","age","gender","weight","height","BMI")] #同上面两行代码的效果是一样的
data1<-data[,c("ID","age","gender","weight","height","BMI")] #也可以这样表达;
data1<-data[1:6]
data1<-data[,1:6]
#也可以通过删除不需要的变量来生成新子集;
data1<-data[c(-7,-8)] #当知道不需要的变量序号时
myvars<-names(data) %in% c("WBC","RBC")
data1<-data[!myvars]
2、只选择部分观测形成新子集,使用subset()函数;例如选择年龄大于等于18岁小于60岁的人群;
data2<-subset(data,age>=18&age<60)
3、既选择部分变量又选择某一部分观测数据作为新子集;也是使用subset()函数,需要加入select参数;例如选择男性的身高、体重、BMI作为一个新数据集。
data3<-subset(data,gender=="M",select=c("ID","gender","weight","height","BMI"))