在 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)
的 TRUE
和 FALSE
的向量,用于 select像这样的数据框:
logical_vec_to_select <- mydata$sex=="male"
mydata[ logical_vec_to_select , ]
并且可以使用相同的技术对数据框或矩阵的列进行子集化。
我想做的是仅将绘图函数应用于数据集中的特定记录选择。比方说,我有一列长度(数字),一列体重(数字)和一列性别(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)
的 TRUE
和 FALSE
的向量,用于 select像这样的数据框:
logical_vec_to_select <- mydata$sex=="male"
mydata[ logical_vec_to_select , ]
并且可以使用相同的技术对数据框或矩阵的列进行子集化。