在R中,我如何只为一个组创建一个情节?

时间:2015-02-09 15:53:22

标签: r plot

我想要做的是仅将绘图功能应用于数据集中的某些记录选择。让我们说,我有一列长度(数字),一列体重(数字)和一列性别(M或F)(某些动物)。我想散布长度与质量的关系,但仅限于M,因此F不会出现在情节上。我该怎么做?

1 个答案:

答案 0 :(得分:2)

有多种方法可以对数据帧进行子集化:

mydata <- data.frame(
length = rnorm(100 , 100 , 20),
mass   = rnorm(100 , 80,5),
sex    = sample( factor(c("male", "female") ) , 100 , replace=TRUE)
)

with( mydata[ mydata$sex=="male",  ] , plot(mass , length  ) )

# or

with( subset(mydata , sex=="male") , plot(mass, length ) )

# or make a new dataset

mydata2 <- mydata[  mydata$sex=="male" , ]

plot(mydata2$mass , mydata2$length)

在每种情况下,mydata$sex=="male"都会生成TRUEFALSE长度为nrow(mydata)的向量,用于选择数据帧的相应行,如下所示:

logical_vec_to_select <- mydata$sex=="male"
mydata[ logical_vec_to_select ,  ] 

可以使用相同的技术对数据帧或矩阵的列进行子集化。