Какой алгоритм использует R при фильтрации фреймов данных? - PullRequest
0 голосов
/ 24 сентября 2018

Например, у меня есть фрейм данных, и я хочу установить его в соответствии с конкретными условиями:

df[df$gender == "woman" & df$age > 40, ]

Каков алгоритм этой фильтрации в R?

1 Ответ

0 голосов
/ 26 сентября 2018

Во время выполнения кода df[df$gender == "woman" & df$age > 40, ] происходит следующее:

  1. df$gender извлечено.
  2. df$gender == "woman" оценено, boolean возвращен вектор.
  3. df$age извлечено.
  4. df$age > 40 оценено, boolean возвращен вектор.
  5. Логический побочный элемент AND применяется к каждому элементу векторов на шаге 2 и шаге 4.
  6. Из шага 5 извлекаются строки из df, имеющие флаг TRUE.

Во всех вышеупомянутых случаях вызываются функции C\C++ бэкэнда.Например, [] вызовы функций подмножества для do_subset в subset.c .

Вы можете объединить отображение между функциями R и его C бэкэндом в names.c

Для получения более подробной информации вы можете обратиться к Доступ к источнику R

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