假设我有以下信息表:
firstname <- c('Todd','Sven','Robert','Jovan','Angelo')
city <- c('Edmond', NA ,'Miami','Houston', NA)
state <- c('OK','KS', NA, 'TX', NA)
job <- c('Clown','Plumber','Professor', 'Uber Driver', 'Therapist')
list_test <- data.frame(firstname, city, state, job)
list_test
firstname city state job
1 Todd Edmond OK Clown
2 Sven <NA> KS Plumber
3 Robert Miami <NA> Professor
4 Jovan Houston TX Uber Driver
5 Angelo <NA> <NA> Therapist
如果任何列为NA,我想返回一条消息,可以通过以下方式识别:
any(apply(list_test, 2, function(x){any(is.na(x))}))
[1] TRUE
我的想法是创建一个简单的if-return语句,如下所示。
if(any(apply(list_test, 2, function(x){any(is.na(x))}))) {
return("At least one row has an NA value.")
}
但是,我收到以下错误消息:
Error: no function to return from, jumping to top level
我很困惑为什么我收到此错误消息。
谢谢!
答案 0 :(得分:1)
return()
仅作为函数的一部分,即返回函数的最终值。您在if
语句中没有功能,因此您会收到return()
本身的错误消息。
尝试以交互方式运行return("foo bar")
- 您会看到相同的错误消息。
正如joran指出的那样,使用print
打印到控制台而不是返回。