我是R的新手,所以它可能非常基本,但我正在尝试将某些值的彩色点添加到矩阵的图表中。" m"。我需要从同一个矩阵添加点,但仅包含169到179范围内的值的行。我可以使用哪些代码?我试过了:
p <- which(m[,2]==169:179
## and
points (p, col="blue")
并且它不起作用。如何正确编写这些代码以将这些坐标以蓝色显示在图表上? 谢谢!
答案 0 :(得分:1)
您可以尝试定义一个函数来测试数字是否介于两个值之间:
inbetween = function(x)
{
return ( x >= 169 & x <= 179 )
}
然后使用sapply函数在m [,2]的每个值上调用它:
ind = sapply( m[,2], inbetween )
如果给定值在范围内,则根据给定值给出一个真或假的向量。
然后取p = m[ind,]
将为您提供所选索引处的m行。
答案 1 :(得分:1)
如果您可以分享您的数据示例,那将是件好事。通常,从数据帧绘制数据(与矩阵相对)更有意义。我们可以使用预先安装的mtcars
数据集来演示您的解决方案。
让我们首先看一下数据集中可用的数据:
summary(mtcars)
接下来,我们可以过滤我们想要显示的数据。在这种情况下,我们会过滤mtcars$mpg
(名称为mpg
的列),其值介于15和20之间。为方便起见,我们将此过滤后的数据框指定为新数据框。
mtcars_filtered <- mtcars[mtcars$mpg >= 15 & mtcars$mpg <= 20 , ]
最后,我们可以绘制数据。在这种情况下,我们希望mpg
列为x值,hp
为y值。 type
用于指定我们希望如何显示它("p"
表示点数),col
用于指定颜色("blue"
表示蓝色)。
plot(mtcars_filtered$mpg, mtcars_filtered$hp, type = 'p', col = 'blue')
希望这有帮助。