我正在尝试查看数据框列是否有任何空值以继续下一个循环。 我目前使用以下代码:
if (is.na(df[,relevant_column]) == TRUE ){next}
出现了以下警告:
在 if (is.na(df_cell_client[, numerator]) == TRUE) { ... : 条件长度 > 1,只有第一个元素被使用
我该如何检查任何值是否为 null 而不仅仅是第一行?
NA
,因为数据框中不能包含那种意义上的null
。)if
需要一个单一的逻辑值,但是is.na(df[,relevant_column])
返回了一个逻辑向量。any
将逻辑向量缩减为向量的全局“或”:
尝试使用以下代码:if (any(is.na(df[,relevant_column]))) {next}
顺便说一下:== TRUE
是不必要的。如果你觉得这样能让代码更加清晰,可以保留它,但我认为大多数 R 代码并不使用它。(我也看到过something == FALSE
同样“奇怪/错误”,其中! something
应该可以工作...但我跑题了。)
anyNA(...)
而不是any(is.na(...))
更好。它们在功能上是等效的,但anyNA
可能会更快,并且可能更易于阅读。 - r2evans
if (any(is.na(df[,relevant_column]))) {next}
。没有any
,is.na(...)
返回一个逻辑向量,但是if
需要进行单个比较;any
将其减少为单个逻辑值。==TRUE
是不必要的。 - r2evans