R中的陈述中的复合条件

时间:2014-07-11 11:40:39

标签: r csv

我的数据集包含6列,其中Ozone,Temp和Solar.R是其中的一部分。我需要找出基于条件$ Ozone> 31和$ Temp> 90的Solar.R值的平均值我执行下面的代码但是它返回NaN

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

请告诉我出错的地方

1 个答案:

答案 0 :(得分:1)

你身上有一对多的&符号。

尝试:

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

来自?"&&"的帮助页面:

  

&&&表示逻辑AND|||表示逻辑OR。较短的形式以与算术运算符大致相同的方式执行元素比较。较长的形式从左到右评估仅检查每个向量的第一个元素。评估仅在确定结果之前进行。较长的形式适用于编程控制流程,通常在if子句中是首选。


顺便说一下,这几乎听起来像是&#34; airquality&#34; R中已有的数据集:

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

哦,并没有使用空格键使代码更多更容易在眼睛上?