R 给出时间的条件

R 给出时间的条件,r,if-statement,R,If Statement,有没有办法在if-else循环中给出一个条件语句 a= "06/28/2017 08:45" b= "06/28/2017 08:32" c= difftime(a,b,units="mins) `if(a+30 > b) { print("you are late") }else print("on time")` 我的数据框是 col1 col2 6/27/2017 11:00 6/27/2017

有没有办法在if-else循环中给出一个条件语句

 a= "06/28/2017 08:45"
 b= "06/28/2017 08:32"
 c= difftime(a,b,units="mins)
`if(a+30 > b)
 { 
  print("you are late")
  }else
  print("on time")`
我的数据框是

      col1                       col2
  6/27/2017 11:00 
  6/27/2017 20:45            
  6/24/2017 19:30               6/24/2017 18:48
  6/27/2017 20:00               6/28/2017 3:16
  6/29/2017 18:30               
  7/4/2017 7:30
  6/24/2017 1:30               6/24/2017 0:21
  6/29/2017 10:00
  6/28/2017 16:30              6/28/2017 18:39
  7/2/2017 19:00
我得到了错误的答案

 `1.Error in if (a+30 > b) missing value where TRUE/FALSE needed
  In Ops.factor(a+30 > b) :‘>’ not meaningful for factors
  2: In if (a+30 > b) { : the condition has length > 1 and only the first element will be used`

我想做的是在“a”中加上30分钟,然后与“b”进行比较,以确定某件事是迟到还是准时

如果您正确设置日期格式,并在If语句中使用减号而不是加号,则它可以正常工作:

a= as.Date("06/28/2017 08:45", "%m/%d/%Y %H:%M")
b= as.Date("06/28/2017 08:32", "%m/%d/%Y %H:%M")

if(a-10 > b) { 
        print("you are late")
} else {
    print("on time")
}

将a-10更改为a-30,您将迟到。

如果您正确设置日期格式,并在If语句中使用减号而不是加号,则效果良好:

a= as.Date("06/28/2017 08:45", "%m/%d/%Y %H:%M")
b= as.Date("06/28/2017 08:32", "%m/%d/%Y %H:%M")

if(a-10 > b) { 
        print("you are late")
} else {
    print("on time")
}
把a-10换成a-30你会迟到的。

怎么样:

library(lubridate)
library(dplyr)
a= mdy_hm("06/28/2017 08:20")
b= mdy_hm("06/28/2017 08:32")
if_else(a + minutes(30) > b, "you are late", "on time")
那么:

library(lubridate)
library(dplyr)
a= mdy_hm("06/28/2017 08:20")
b= mdy_hm("06/28/2017 08:32")
if_else(a + minutes(30) > b, "you are late", "on time")

a
b
是字符,您需要使用
strtime
as.Posixct
将它们转换为日期时间对象,然后向
a
添加30分钟,即30*60秒,然后进行比较。
a
b
是字符,您需要使用
strtime
as.Posixct
将它们转换为日期时间对象,然后向
a
添加30分钟,即30*60秒,然后进行比较。如何在列上实现这一点?我们是用减号算符加10还是30?你能把这个问题写得更全面一点吗?你想实现什么?我有两列,其中日期和时间为行,我想在它们上实现这一点,以了解是晚了还是在时间上。或者,我用相同的循环得到了输出。如何在列上实现这一点?我们是用减号算符加10还是30?你能把这个问题写得更全面一点吗?你想实现什么?我有两个列,其中日期和时间为行,我想在它们上实现这一点,以了解是晚了还是在时间上。或者,我通过相同的循环得到了输出。当我在我的列上实现这一点时,所有行中都显示NA如下示例:df=data.frame(a=mdy_-hm(c(“06/28/2017 08:20”,“06/28/2017 08:15”)),b=mdy_hm(c(“06/28/2017 08:32”、“06/28/2017 08:55”);如果我在我的专栏中实现这一点时,它在所有行中显示NA,如下示例:df=data.frame(a=mdy_-hm(c(“06/28/2017 08:20”,“06/28/2017 08:15”)),b=mdy_-hm(c(“06/28/2017 08:32”,“06/28/2017 08:55”));如果有其他情况(df$a+分钟(30)>df$b,“你迟到了”,“准时了”)