Total_Time <- function(TT_column){
z <- dmy_hms(TT_column)
hr <- hour(z)
min <- minute(z)
sec <- second(z)
x <- hr*60 + min + sec/60 # No need to extract days as the maximum value is 13 hours
x
}
df$TT.Col_1 <- Total_Time(df$T.Col_1)
sum(is.na(df)) # 0
df$TT.Col_2 <- Total_Time(df$T.Col_2)
sum(is.na(df)) # 0
df$TT.Col_3 <- Total_Time(df$T.Col_3)
sum(is.na(df)) # 0
df$TT.Col_4 <- Total_Time(df$T.Col_4)
sum(is.na(df)) # 0
df$TT.Col_5 <- Total_Time(df$T.Col_5)
sum(is.na(df)) # 5
df$TT.Col_6 <- Total_Time(df$T.Col_6)
sum(is.na(df)) # 7
我正在尝试找出tryCatch()
的那些NaN值的来源,但我无法找到将tryCatch()
用于这些特定列(TT.Col_5
和{的方法{1}})。
某些上下文:TT.Col_6
是字符时间值(T.Col_X
),它们在dd/mm/yyyy hh:mm:ss
开始时转换为分钟,为0小时0分0秒。 30/12/1899 00:00:00
是转换这些值的函数,它会在Total_Time
答案 0 :(得分:0)
我找到了解决方案。我发现它在NaN来自的代码行中应用没有函数的转换,例如:
而不是:
df$TT.Col_5 <- Total_Time(df$T.Col_5)
我做了:
z <- dmy_hms(df$T.Col_5) # Here was the problem
hr <- hour(z)
min <- minute(z)
sec <- second(z)
df$TT.Col_5 <- hr*60 + min + sec/60
问题是什么?我发现了5个空的非NaN值。 df$Col_6
也是如此,而是7个非NaN值。