r - 如何找出新的 NaN 来自哪里 - R
问题描述
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
我试图找出这些 NaN 值的来源,tryCatch()
但我无法找出tryCatch()
与这些特定列(TT.Col_5
和TT.Col_6
)一起使用的方法。
一些上下文:T.Col_X
是字符时间值 ( dd/mm/yyyy hh:mm:ss
),它们在30/12/1899 00:00:00
0 小时、0 分钟和 0 秒后开始转换为分钟。Total_Time
是转换这些值并将它们恢复为的函数TT.Col_X
解决方案
我找到了解决方案。我发现它在 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 值。
推荐阅读
- android - 回购清单。致命:清单“default.xml”不可用
- android - React native 中的密钥库格式无效
- mysql - 将 docker mysql 卷从容器转换为共享目录
- mysql - 我无法运行 mysql 命令行
- couchdb - writing a map function in couchdb db that inserts another doc into a doc
- r - 从R中的图像修改像素颜色
- ios - 有没有办法让 ios 的通知监听器在颤动
- python - 如何将python数组分配给gnuplot数组?
- javascript - material-ui table 多子行不能一起悬停
- css - ICSS :export 函数将所有键转换为 camelCase