Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
dplyr:ifelse在R中有时间-需要选项返回NULL、0或NA_R_If Statement_Time_Dplyr - Fatal编程技术网

dplyr:ifelse在R中有时间-需要选项返回NULL、0或NA

dplyr:ifelse在R中有时间-需要选项返回NULL、0或NA,r,if-statement,time,dplyr,R,If Statement,Time,Dplyr,需要有关此代码的帮助。似乎问题是在真实的条件下,我打算指出它是空的。我已经测试了几个备选方案,但找不到解决方案 library(lubridate) library(hms) df1 <- Sample1 %>% mutate(Start_day = format(StartSession,format = "%d"), End_day = fo

需要有关此代码的帮助。似乎问题是在真实的条件下,我打算指出它是空的。我已经测试了几个备选方案,但找不到解决方案

library(lubridate)
library(hms)
df1              <- Sample1 %>%
                    mutate(Start_day = format(StartSession,format = "%d"),
                           End_day = format(EndSession,format ="%d"),
                           Dif_days = if_else (Start_day == End_day,0,1), 
                           StartSession_Time1 = hms::as_hms(StartSession),
                           EndSession_Time1 = if_else(Dif_days == 0, hms::as_hms(EndSession), as_hms("23:59:59")),
                           StartSession_Time2 = if_else(Dif_days == 0, NULL, as_hms("00:00:00")),
                           EndSession_Time2 = if_else(Dif_days == 0, NULL, hms::as_hms(EndSession)))
库(lubridate)
图书馆(hms)
df1%
变异(开始日=格式(开始会话,格式=“%d”),
End_day=格式(EndSession,format=“%d”),
Dif_天=如果其他(开始_天==结束_天,0,1),
StartSession_Time1=hms::as_hms(StartSession),
EndSession_Time1=if_else(Dif_days==0,hms::as_hms(EndSession),as_hms(“23:59:59”),
StartSession_Time2=if_else(Dif_days==0,NULL,如“00:00:00”),
EndSession_Time2=if_else(Dif_days==0,NULL,hms::as_hms(EndSession)))
错误消息: 错误:
mutate()
input
StartSession\u Time2
有问题。x
false
必须是逻辑向量,而不是
hms/difftime
对象??输入
StartSession\u Time2
为'if\u else(Dif\u days==0,NA,as\u hms(“00:00:00”))


Tks PREVANCE

NULL
是一个0长度的对象,类为“NULL”,因此它不能用作
if_else()
调用的输出(或基本R的
ifelse

如果使用
if_else
,则需要将
hms
类与TRUE和FALSE条件相匹配,如:

data.frame(x = 1:10) %>%
   mutate(out = if_else(x > 5, as_hms(NA), as_hms("00:00:00")) )

#    x      out
#1   1 00:00:00
#2   2 00:00:00
#3   3 00:00:00
#4   4 00:00:00
#5   5 00:00:00
#6   6       NA
#7   7       NA
#8   8       NA
#9   9       NA
#10 10       NA

NULL
无法使用。试着把
改为