вне меня и кажется проблемой языкового дизайна. Однако есть простое решение:
ользовалsum(is.na(my.df))
проверить, содержит ли мой фрейм данных какие-либо NA, которые работали, как я ожидал, ноsum(is.nan(my.df))
не работает, как я ожидал.
> my.df <- data.frame(a=c(1, 2, 3), b=c(5, NA, NaN))
> my.df
a b
1 1 5
2 2 NA
3 3 NaN
> is.na(my.df)
a b
[1,] FALSE FALSE
[2,] FALSE TRUE
[3,] FALSE TRUE
> is.nan(my.df)
a b
FALSE FALSE
> sum(is.na(my.df))
[1] 2
> sum(is.nan(my.df))
[1] 0
О, Боже. Есть ли причина несогласованности в поведении? Это из-за отсутствия реализации или намеренно? Что означает возвращаемое значениеis.nan(my.df)
означает? Есть ли веская причина не использоватьis.nan()
на весь фрейм данных?
В документации дляis.na( )
а такжеis.nan( )
типы аргументов кажутся одинаковыми (хотя они не содержат конкретного списка фреймов данных):
is.na()
: x R проверяемый объект: методы по умолчанию обрабатывают атомарные векторы, списки и паирлисты.is.nan()
: x R проверяемый объект: методы по умолчанию обрабатывают атомарные векторы, списки и паирлисты.