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()
inputStartSession\u Time2
有问题。xfalse
必须是逻辑向量,而不是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
无法使用。试着把改为
。