2013-02-28 76 views
19

我有一個由13列(稱爲PC)組成的矩陣。我想創建一個新的矩陣,只包含4到8之間的值(稱爲EUR)。我試圖用這樣的說法:R:`哪個`陳述多條件

EUR <- PCs[which(PCs$V13 < 9 && PCs$V13 > 3), ] 

不幸的是沒有工作...(我只得到一個排出來,同時有幾百個)

任何人都知道什麼是錯用這個命令?

+1

示例數據可能有助於他人回答您的問題。 – 2013-02-28 16:44:31

+0

@Abdel就像Ryan Thompson所說的,你可以查找關於&,&&和|,||的描述。在手冊中。 – sikisis 2015-08-12 01:46:02

回答

31

&&函數沒有向量化。您需要&功能:

EUR <- PCs[which(PCs$V13 < 9 & PCs$V13 > 3), ] 
+2

是的,在手冊中,它寫道「&和&&表示邏輯AND並且|和||表示邏輯OR,較短的形式以與算術運算符幾乎相同的方式執行元素比較,較長的形式從左到右計算僅檢查每個矢量的第一個元素,評估僅在確定結果之前進行,較長的形式適用於編程控制流程,並且通常優先考慮if子句。 – sikisis 2015-08-12 01:46:22