Я пишу функцию, которая отфильтровывает некоторые случайные данные из таблицы данных random
в соответствии с значением id, но сначала я хочу проверить, действительно ли есть фактические строки данных в таблице данных. Я закончил писать оператор if и использовал is.null
, но он по-прежнему для этого условия, но его не работает, и он получает доступ к инструкции else, а затем дает мне ошибку. код размещен ниже, пожалуйста, помогите мнеКак проверить, имеет ли таблица данных пустые строки?
new.filterID <- function(DataTable,id) {
if(DataTable == is.null){
return(print("No Data Available: ",id))
} else { filtered <- subset(DataTable, ID == id)
return(aggregate(Value ~ YEAR_WW, filtered, mean))
}
}
filteredData <- new.filterID(random, 213)
Я получаю ошибку, когда я запускаю это
Error in aggregate.data.frame(mf[1L], mf[-1L], FUN = FUN, ...) :
no rows to aggregate
Также ниже пустой таблице данных random
Value YEAR_WW
Используйте 'if (nrow (DataTable) == 0)'. Объект все еще существует, даже если он не содержит никаких данных. – lmo
Спасибо, что он работал @lmo –