我想要做的是仅将绘图功能应用于数据集中的某些记录选择。让我们说,我有一列长度(数字),一列体重(数字)和一列性别(M或F)(某些动物)。我想散布长度与质量的关系,但仅限于M,因此F不会出现在情节上。我该怎么做?
答案 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"
都会生成TRUE
和FALSE
长度为nrow(mydata)
的向量,用于选择数据帧的相应行,如下所示:
logical_vec_to_select <- mydata$sex=="male"
mydata[ logical_vec_to_select , ]
可以使用相同的技术对数据帧或矩阵的列进行子集化。