Какова семантика аранжировки (полеты, des c (is.na (x)), x)? - PullRequest
0 голосов
/ 01 мая 2020

Я новичок в R с Python.
Когда я прочитал книгу "R для науки о данных", функция

df <- tibble(x = c(5, 2, NA))
arrange(df, desc(is.na(x)), x)
#> # A tibble: 3 × 1
#> x
#> <dbl>
#> 1 NA
#> 2 2
#> 3 5

смутила меня. Какова семантика для этого. Могу ли я это сделать?

arrange(df, x > 3, x)

это указанная c операция для NA?

Ответы [ 2 ]

2 голосов
/ 01 мая 2020

arrange используется для упорядочивания строк. Вы можете передавать имена переменных или выражения к нему.

Когда вы передаете is.na(df$x), возвращается:

#[1] FALSE FALSE  TRUE

FALSE рассматривается как 0, а TRUE как 1. Поскольку вы упоминаете, что хотите отсортировать его по убыванию TRUE значения идут первыми, а FALSE позже, в случае t ie остальные значения остаются в том же порядке, в каком они присутствуют в кадре данных.

arrange(df, desc(is.na(x)))

#      x
#  <dbl>
#1    NA
#2     5
#3     2

Так как 1-е и 2-е значения одинаковы (FALSE), он переходит ко второй переменной, которая передается, чтобы разбить t ie, т. Е. x, где значения сортируются на основе в порядке возрастания значений в x.

arrange(df, desc(is.na(x)), x)

#      x
#  <dbl>
#1    NA
#2     2
#3     5
2 голосов
/ 01 мая 2020

Функция is.na() выводит вектор TRUE / FALSE для представления, является ли соответствующий элемент вектора отсутствующим значением. desc() помогает функции arrange() сортировать ее по убыванию (сначала TRUE, затем FALSE), поэтому, скорее всего, в верхней части будут показаны отсутствующие значения.

Так что нет, это не конкретно c для НС. Это там для arrange().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...