我的数据集包含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))
请告诉我出错的地方
答案 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
哦,并没有使用空格键使代码更多更容易在眼睛上?