此代码生成错误,但为什么?我认为nzchar是判断一个字段是否为空的适当工具?
for(i in 1:length(mega$hour_start)){
temp = mega$hour_start[i][[1]]
if (!nzchar(temp)){
next
}
}
Error in if (!nzchar(temp)) { : argument is of length zero
我使用nzchar来避免错误,我不知道如何避免此函数产生的错误。
以下是数据的样子:mega $ hour_start有时是一个数字数组,有时是空的:
> mega$hour_start[45:50]
[[1]]
NULL
[[2]]
NULL
[[3]]
NULL
[[4]]
NULL
[[5]]
[1] 11 11 10 16 12 12 11 11 11 11 22 22 14 14 14 6 6 17 17 17 15 15 15 11 20 20 20 20 12 10 7
[[6]]
NULL
循环浏览此数据框列的正确方法是什么,以免产生错误?感谢您的任何建议。
答案 0 :(得分:2)
您希望测试
if (is.null(temp)) {
next
}
如果打算对temp
进行NULL
测试。换句话说,如果temp == NULL
,跳转到循环的下一次迭代。
nzchar()
用于确定向量中的非零字符串。