Я был удивлен, узнав, что R не поставляется с удобной функцией для проверки того, является ли число целым.Проверьте, является ли число целым числом
is.integer(66) # FALSE
is.integer(x)
не тестирует, еслиx
содержит целые числа! Для этого используетround
, как в функцииis.wholenumber(x)
в примерах.
В примере имеет пользовательскую функцию в качестве «обходного»
is.wholenumber <- function(x, tol = .Machine$double.eps^0.5) abs(x - round(x)) < tol
is.wholenumber(1) # is TRUE
Если бы я должен написать функцию для проверки целых чисел, при условии, что я не прочитал комментарии выше, я хотел бы написать функция, которая будет что-то идти по линиям
check.integer <- function(x) {
x == round(x)
}
Где мой подход не удался? Какова была бы ваша работа, если бы вы были в моих гипотетических ботинках?
Я хотел бы надеяться, что если «round (x)» будет реализовано правильно, результат применения его к целому будет всегда быть целым ... – Stephen
Взгляните на FAQ по R http: // cran.r-project.org/doc/FAQ/R-FAQ.html#Why-doesn_0027t-R-think-these-numbers-are-equal_003f –
> check.integer (9.0) [1] TRUE это не так. –