Сообщение об ошибке «отсутствует значение, где требуется ИСТИНА / ЛОЖЬ» в операторе if в формате Date.time - PullRequest
0 голосов
/ 28 марта 2020

Я пытался запустить мой R-скрипт безуспешно.

Что я не понимаю, так это то, что я смог запустить его для других файлов, но не для этого.

Целью кода является добавление 1 к «num» каждый раз, когда временное смещение в столбце «Date.time» превышает 10 минут.

Итак, вот код:

#Exemple of data.frame from where I started
data <- data.frame(Day=c(13,13,13,13,12), Month=c("05","05","05","05","06"),Year=c(2009,2009,2009,2009,2009), Time=c("15:13","15:23","15:33","17:53","17:24"),num=c(1,1,1,1,1))

#Creation of colomn "Date" to merge colomns "Day", "Month", "Year" together. Then merging "Date" and "Time" in the "Date.time" colomn. 
data$Date <- paste(synchro$Day,synchro$Month,synchro$Year, sep="/")
data$Date.time <- paste(synchro$Date, synchro$Time, sep=" ") 

#Change format of "Date.time" with as.POSIXct, so it's considered as a time colomn.
synchro$Date.time <- as.POSIXct(synchro$Date.time,format="%d/%m/%Y %H:%M",tz="")

#Then try the "if" statement to add 1 everytime the timeshift in colomn "Date.time" is more than 10 minutes.

for(i in 2:nrow(synchro)) 
{if(as.numeric(synchro$Date.time[i] - synchro$Date.time[i-1])!=10)  
{synchro$num[i] = (synchro$num[i-1])+1} 
  else{synchro$num[i] = synchro$num[i-1]}
}

#Should return something like this:
data <- data.frame(Day=c(13,13,13,13,12), Month=c("05","05","05","05","06"),Year=c(2009,2009,2009,2009,2009), Time=c("15:13","15:23","15:33","17:53","17:24"),num=c(1,1,1,2,3))

Я пытался изменить формат столбца Date.time, но он всегда возвращает следующее сообщение об ошибке:

Ошибка в if (as.numeri c (synchro $ Date.time [i] - synchro $ Date.time [i - 1])!!: Пропущенное значение, где требуется TRUE / FALSE

Может кто-нибудь помочь мне найти проблему с моим кодом, пожалуйста?!

Заранее спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...