撰稿人:统计小可爱,热心市民K
我们经常会从一个大的数据集里选择几个变量或符合某些条件的观测来创建一个新的数据集。今天这一讲,就向大家介绍怎么选取特定的观测和变量。假如现在我们有一个数据集seed,数据情况如下。我们可以通过R软件轻松实现以下几种需求。
首先我们需要回顾几个常用函数:
data:表示为数据集。
data[ , ]:括号中逗号里左边表示行信息,右边表示列信息。如果行或列留空,表示默认选择所有行或列。
names(data):查看数据集data的变名。
which(names(data)== ' var '):给出数据集data中变量var的位置。
c( x , y , z ):c()函数的使用非常简单,可以把各个值连成向量或列表。
01
保留变量
根据上述的基本函数,我们便可以选取或保留数据集的某些变量:
newdata<-data[ , c ( n , m , l ) ]
函数表示从data数据集中选择了第n、第m和第l个变量,将行下标留空,表示默认选择所有行,并将它们保存到新的数据框newdata。
例1:假设我们想要选取seed数据集的第1,2,3列变量,也就是obs,sex,和width。
newseed<-seed[ , c ( 1 , 2 , 3 ) ]
我们也可以通过直接输入变量名实现上边的结果:
newseed<-seed[ , c ( ' obs ', ' sex ', ' width ' ) ]
02
剔除变量
如果知道要删除的变量是第几个变量的情况下,可以直接使用以下语句:
newdata<-data[ , c( -n , -m ) ]
如果不知道变量位置的可以使用以下语句:
data$var<-NULL
例2:假设我们想要删除seed数据集的第2,3列变量:
newsee<-seed[ , c( -2 , -3 ) ]
我们也可以通过下面的方法来对变量名删除:
see$sex<-NULL
see$width<-NULL
03
选择观测值
一般来说,我们有时需要进行分组统计分析,或者只需要分析其中的一部分数据,则可以通过拆分数据集来实现上述操作。
同样,根据上述的基本函数,我们也可以选取或保留数据集的某些观测:
newdata<-data[ 1:100 , ]
选择data数据集前100个观测,将行下标留空,表示默认选择所有列。
newdata<-data[ data$var==n , ]
通过对var是否等于n进行逻辑判断并输出对的所有观测
newdata<-data[ which(data$var>n & data$var <m) , ]
选择var变量在n~m取值之间的观测
例3:假设我们想要选择sex=1的观测进行分析:
newseed<-seed[ see$sex==1 , ]
例4:假设我们想要选择cbc大于1,且cbc小于5的观测进行分析:
newseed<-seed[which(see$cbc>1 & see$cbc <5) , ]
大家发现文章下面有一个烦人的小广告吗?
如果你喜欢我们的文章
举手之劳点一下
相当于给作者们打个赏
感谢大家支持
联系客服