2014-07-11 58 views
0

我的數據集包含6列,其中臭氧,溫度和Solar.R是其中的一部分。我需要根據條件$找出Solar.R值的平均值臭氧> 31和$溫度> 90,我執行下面的代碼,但它返回的NaN複合條件在R的說明中

data<-read.csv("hw1_data.csv",header=TRUE) 
mean(na.omit(data[data$Ozone>31 && data$Temp>90,]$Solar.R)) 

請讓我在哪裏,我錯了

+0

發佈.csv文件的頭幾行,或類似的東西。在你讀入R之前,你是否檢查過你的數據是否有點奇怪?您是否檢查過R以確保數據正確讀取? – shadowtalker

+0

是的,一切正常,正確的答案發布如下。 Thnx – Arin

回答

1

你在那裏有一對多的&符號。

嘗試:

mean(na.omit(data[data$Ozone > 31 & data$Temp > 90, ]$Solar.R)) 

從幫助頁面在?"&&"

&&&表示邏輯AND|||表示邏輯OR。較短的形式以與算術運算符幾乎相同的方式執行元素比較。較長的形式從左到右進行評估,僅檢查每個矢量的第一個元素。評估只會在結果確定之前進行。更長的形式適用於編程控制流程,並且通常優先考慮if子句。


順便說一句,這幾乎聽起來像 「airquality」 數據集已經可以在R:

mean(na.omit(airquality[airquality$Ozone > 31 & 
          airquality$Temp > 90, ]$Solar.R)) 
# [1] 212.8 

哦,不使用節省空間酒吧使代碼更容易在眼睛上?

+0

謝謝,這很快,很重要。同意你的所有評論我只是塗鴉,並立即粘貼代碼。將來會保重。 – Arin

+0

@Arin,沒問題。歡迎來到SO :-) – A5C1D2H2I1M1N2O1R2T1