Hello,
I am trying to subset my data based on a date, in the R tool and I get this warning
Warning: R (34): Incompatible methods ("Ops.factor", "Ops.POSIXt") for ">"
which leads to undesirable results.
Pasted below is the code I am using (I have tried couple different lines of code but all of them gives the same warning).
All the options I tried (commented in the code below works fine in Rstudio)
# Read the data stream into R Input <- read.Alteryx("#1", mode="data.frame") season_matrix <- model.matrix(Input$Change ~Input$Season)[,-1] Input <- cbind(Input,season_matrix) #Input$Date <- as.Date(Input$Date) #the.data_test <- Input[ Input$Date >= as.POSIXct("2015-12-31"),] #the.data_train <- Input[ Input$Date <= as.POSIXct("2015-12-31"),] the.data_test <- Input[ which(Input$Date > as.POSIXct("2015-12-31")),] the.data_train <- Input[ which(Input$Date <= as.POSIXct("2015-12-31")),] #the.data_test <- Input[ format(Input$Date,"%Y-%m-%d") >= "2015-12-31",] #the.data_train <- Input[ format(Input$Date,"%Y-%m-%d") <= "2015-12-31",] #the.data_test <- subset(Input , as.Date(Date) > as.POSIXct("2015-12-31")) #the.data_train <- subset(Input , as.Date(Date) <= as.POSIXct("2015-12-31"))
Can anyone please give some idea on how to fix this.
Thanks,
Ashish
Solved! Go to Solution.
ok, I figured out the fix for the problem. Although I do not fully understand why it was not working earlier and why its working now, but somehow it worked.
I used as.Date function on both sides of operator to coerce the type.
require(glmnet) require(stats) # Read the data stream into R Input <- read.Alteryx("#1", mode="data.frame") season_matrix <- model.matrix(Input$Change ~Input$Season)[,-1] Input <- cbind(Input,season_matrix) #Input$Date <- as.Date(Input$Date) #the.data_test <- Input[ Input$Date >= as.POSIXct("2015-12-31"),] #the.data_train <- Input[ Input$Date <= as.POSIXct("2015-12-31"),] the.data_test <- Input[ as.Date(Input$Date) >= as.Date("2015-12-31"),] the.data_train <- Input[ as.Date(Input$Date) <= as.Date("2015-12-31"),]
The "Date" variable in the dataset was already of type date so I did not suspect it earlier.
Also when I tried formula tool create a new Date variable date format that did not work either.
I am relieved that I've found a fix but I lack the understanding what works and why.
Thanks,