2017-09-24 51 views
1

在矩陣某些行繪製點我是新至R因此它可能是很基本的,但我想對某些值添加彩色點矩陣「M」的陰謀。我需要從同一個矩陣中添加點,但對於包含169到179範圍內的值的行,只有只有。我可以使用哪些代碼?我試過了:從R中

p <- which(m[,2]==169:179 
## and 
points (p, col="blue") 

它不起作用。我該如何正確編寫這些代碼才能將這些座標以藍色顯示在圖形上? 謝謝!

回答

1

您可以嘗試定義測試,如果一個號碼是你的兩個值之間的函數:

inbetween = function(x) 
{ 
    return (x >= 169 & x <= 179) 
} 

然後調用它的m的每個值[2]與sapply功能: ind = sapply(m[,2], inbetween) 根據給定的值是否在範圍內,給你一個True或False的向量。 然後服用p = m[ind,]會給你在這些選定索引處的m行。

+1

爲什麼不只是'm [,2] <= 179&m [,2]> = 169'。 R在函數調用 – jenesaisquoi

+0

不是很好哦,確實更簡單! – ZiGaelle

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') 

希望這會有所幫助。