在 R 中,如何只为一组绘图?

In R, how do I make a plot for only one group?

我想做的是仅将绘图函数应用于数据集中的特定记录选择。比方说,我有一列长度(数字),一列体重(数字)和一列性别(M 或 F)(某些动物的)。我想绘制长度与质量的散点图,但仅限于 M,这样 F 就不会出现在图中。我该怎么做?

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

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" 生成长度为 nrow(mydata)TRUEFALSE 的向量,用于 select像这样的数据框:

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

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