Быстрая проверка RDocumentation ( is.unsorted ) включает следующую строку:
Примечание: эта функция предназначена для объектов с одномерными индексами, как описано выше,Кадры данных, матрицы и другие массивы могут давать удивительные результаты.
Поэтому вам следует избегать использования этой функции для полных кадров данных.Вместо этого вам следует запускать эту функцию для определенных функций фрейма данных, а не для всего фрейма данных.
Например, приведенный ниже фрагмент кода.Вы можете видеть, что эта функция работает как положено на одномерных объектах (векторах);однако имеет неожиданный результат при запуске на фрейме данных (возвращается FALSE
при ожидании TRUE
результата).
Однако, когда фрейм данных был подмножеством (с использованием оператора $
) и is.unsorted()
функция запускается для отдельных функций, а затем возвращает ожидаемый результат.
> vec <- c(1,2,3,4,5)
> is.unsorted(vec) # Expected: FALSE
[1] FALSE
> vec <- c(1,3,2,5,4)
> is.unsorted(vec) # Expected: TRUE
[1] TRUE
> vec <- c("A","B","C","D","E")
> is.unsorted(vec) # Expected: FALSE
[1] FALSE
> vec <- c("A","C","B","E","D")
> is.unsorted(vec) # Expected: TRUE
[1] TRUE
> dat <- data.frame(num=c(1,2,3,4,5)
+ ,chr=c("A","B","C","D","E")
+ ,stringsAsFactors=FALSE
+ )
> is.unsorted(dat) # Expected: FALSE
[1] FALSE
> dat <- data.frame(num=c(1,3,2,5,4)
+ ,chr=c("A","B","C","D","E")
+ ,stringsAsFactors=FALSE
+ )
> is.unsorted(dat) # Expected: TRUE
[1] FALSE
> is.unsorted(dat$num) # Expected: TRUE
[1] TRUE
> is.unsorted(dat$chr) # Expected: FALSE
[1] FALSE