I want to create data frame for temperature
Time frame : 2020-01-01 ~ 2020-12-31
Temperature :
2020-01-01 ~ 2020-02-29 and 2020-10-01 ~ 2020-12-31 : random integer between 10 ~ 24
2020-03-01 ~ 2020-05-31 : random integer between 5 ~ 17
2020-06-01 ~ 2020-09-31 : random integer between 1 ~ 8
my code is
library(tidyverse)
library(lubridate)
library(summarytools)
library(dplyr)
start <- as.POSIXct("2020-01-01", "%Y-%m-%d", tz = "UTC")
end <- as.POSIXct("2020-12-31", "%Y-%m-%d", tz = "UTC")
remT <- seq(start, end, by = "1 day")
date_df <- as.data.frame(remT)
date_df <- setNames(date_df, c("Date"))
date_df <- date_df %>% arrange(Date)
cond_1 <- for(i in date_df$Date){(i >= as.Date('2020-01-01') && i <= as.Date('2020-02-29')) || (i >= as.Date('2020-10-01') && i <= as.Date('2020-12-31'))}
cond_2 <- for(j in date_df$Date)(j >= as.Date('2020-06-01') && j <= as.Date('2020-09-30'))
x <- sample(10:24, 152, replace=TRUE)
y <- sample(1:8, 122, replace=TRUE)
z <- sample(5:17, 92, replace=TRUE)
date_df <- date_df %>%
mutate(Test =
ifelse(cond_1, x,
ifelse(cond_2, y , z)
)
)
However, this code returned the error message unfortunately
Error: Problem with mutate() column Test. ℹ Test = ifelse(cond_1, x, ifelse(cond_2, y, z)). ℹ Test must be size 366 or 1, not 0.
How to solve this error?
Aucun commentaire:
Enregistrer un commentaire