为什么我将列分隔并转换为as factor,但它不能用col=as.factor()打印成两种颜色,只保留一种颜色
我使用收集功能改革数据格式为什么我将列分隔并转换为as factor,但它不能用col=as.factor()打印成两种颜色,只保留一种颜色,r,plot,R,Plot,我使用收集功能改革数据格式 然后使用分离函数将“Petal.Width:分割为Petal(零件变量)和Width(测量变量)。 然后我想画一个基于花瓣和萼片的散点图,但是在我把部分变量转换成因子后,我不能用两种颜色作为部分的基础 col=c('red','blue')[iris2$Part], xlab = 'Length',ylab='Width', xlim=c(1,10),ylim=c(0,5),type = 'p') 我使用col=c('red','bl
然后使用分离函数将“Petal.Width:分割为Petal(零件变量)和Width(测量变量)。 然后我想画一个基于花瓣和萼片的散点图,但是在我把部分变量转换成因子后,我不能用两种颜色作为部分的基础
col=c('red','blue')[iris2$Part],
xlab = 'Length',ylab='Width',
xlim=c(1,10),ylim=c(0,5),type = 'p')
我使用col=c('red','blue')[iris2$part],但它只使用蓝色或第二种颜色,以我选择的颜色为准
iris2<-gather(iris,'Part','Number',-Species)
iris2<-separate(iris2,col='Part',into=c('Part','Measure'))
#iris2<-iris2[rank(iris2$Part)]
iris2$Part<-as.factor(iris2$Part)
plot(iris2$Number[iris2$Measure=='Length'],iris2$Number[iris2$Measure=='Width'],
col=c('red','blue')[iris2$Part],
xlab = 'Length',ylab='Width',
xlim=c(1,10),ylim=c(0,5),type = 'p')
问题在于打印定义中的过滤。
iris2$Number[iris2$Measure=='Length']
和iris2$Number[iris2$Measure=='Width']
都是300个元素的向量,但是iris2$Part
是600个元素的向量,因此只使用前300个元素。在这种情况下,所有的“花瓣”元素都是由“值为2的因子。如果您在
iris2$Part[iris2$Measure=='Length']
中进行替换,这将提供更接近您期望的内容
plot(iris2$Number[iris2$Measure=='Length'],iris2$Number[iris2$Measure=='Width'],
col=c('red','blue')[iris2$Part[iris2$Measure=='Length']],
xlab = 'Length',ylab='Width',
xlim=c(1,10),ylim=c(0,5),type = 'p')
问题在于打印定义中的过滤
iris2$Number[iris2$Measure=='Length']
和iris2$Number[iris2$Measure=='Width']
都是300个元素的向量,但iris2$Part
是600个元素的向量,因此只使用前300个元素。在这种情况下,所有值为2的“花瓣”因子。如果您在
iris2$Part[iris2$Measure=='Length']
中进行替换,这将提供更接近您期望的内容
plot(iris2$Number[iris2$Measure=='Length'],iris2$Number[iris2$Measure=='Width'],
col=c('red','blue')[iris2$Part[iris2$Measure=='Length']],
xlab = 'Length',ylab='Width',
xlim=c(1,10),ylim=c(0,5),type = 'p')