Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么我将列分隔并转换为as factor,但它不能用col=as.factor()打印成两种颜色,只保留一种颜色_R_Plot - Fatal编程技术网

为什么我将列分隔并转换为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')