基本R ifelse测试温度范围

时间:2018-09-27 17:38:58

标签: r if-statement time-series

我知道以前曾针对其他情况问过这个问题,但是没有一个答案与我的情况相符。我一直在努力,但是没有使它适用于我的代码。我相信有一个简单的解决方案,感谢您的帮助。

我的数据如下:

start <- as.POSIXct("2018-05-18 00:00")
tseq <- seq(from = start, length.out = 1440, by = "10 mins")
Measurings <- data.frame(
  Time = tseq,
  Temp = sample(10:37,1440, replace = TRUE, set.seed(seed = 10)),
  Variable1 = sample(1:200,1440, replace = TRUE, set.seed(seed = 187)),
  Variable2 = sample(300:800,1440, replace = TRUE, set.seed(seed = 333))
)

Measurings$heat25 <- ifelse(Measurings$Temp >= 25 ,"summer", "normal")
Measurings$heat30 <- ifelse(Measurings$Temp > 30 ,"heat", "normal")

这有效,我需要使用“列”来根据温度值选择数据。 现在,我需要一个新列来指示温度是否在25°C和30°C之间。我希望能够结合这样的测试参数:

Measurings$summer <- ifelse(Measurings$Temp >= 25 && < 30, "summer", "rest"))

但是我得到一个错误。

如何简单地添加新列以指示Temp是否在25°C和30°C之间?

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

您需要稍微修改代码

Measurings$summer <- ifelse(Measurings$Temp >= 25 & Measurings$Temp < 30, "summer", "rest"))

您只需使用单个&运算符即可进行矢量化操作