Подтвердить что ты не робот

В чем смысл сообщения "local data frame" из `dplyr: print.tbl_df`?

При использовании dplyr функция tbl_df печатает выражение, в котором фрейм данных является "локальным":

> mtcars %>%
+     group_by(gear) 
Source: local data frame [32 x 11]
Groups: gear

    mpg cyl  ...
1  21.0   6  ...

Я думал, что локальный фрейм данных имеет смысл в памяти, а нелокальный кадр данных - это база данных, такая как SQL. Я думаю, что я ошибаюсь в этом предположении. В этом учебном видео примерно в 25:25, Кевин Маркхэм говорит, что объекты data.frame не являются локальными кадрами данных, которые, как я полагал, были.

Я просмотрел документацию tbl_df и использовал функцию поиска в dplyr введение vignette, но не могу найти описание локальный фрейм данных.

Вопрос: Что такое локальный фрейм данных?

4b9b3361

Ответ 1

Я являюсь автором видеоурока, упомянутого в вопросе. Здесь приводится резюме функций, относящихся к этому обсуждению:

  • data.frame() - это функция R для создания регулярных фреймов данных.
  • data_frame() - это функция dplyr для создания локальных фреймов данных.
  • tbl_df() и as_data_frame() являются функциями dplyr для преобразования регулярного фрейма данных (или списка) в локальный фрейм данных.

Итак, в чем разница между регулярными и локальными кадрами данных? Очень мало. локальный фрейм данных - это просто регулярный кадр данных, который был обернут классом tbl_df для более удобной печати. (Данные все еще хранятся в регулярном кадре данных "под капотом".)

В частности, при печати флага данных локальный отображаются только первые 10 строк и столько столбцов, сколько может помещаться на вашем экране. (Вы можете увидеть пример этого поведения в верхней части документа RMarkdown из моего первый учебник dplyr video, который предшествует руководству, приведенному выше).

Все функции dplyr по умолчанию возвращают кадр данных локальный, хотя вы можете преобразовать его обратно в обычный фрейм данных с помощью функции data.frame(). Одна из причин этого - если вы предпочитаете способ печати обычных данных, а именно, что вы хотите увидеть больше строк или больше столбцов. Однако dplyr позволяет это сделать без его преобразования:

library(dplyr)
library(nycflights13)

# print a local data frame (10 rows, variable number of columns)
flights

# print 15 rows
print(flights, n = 15)

# print all rows (don't run this, since it has 336,776 rows)
print(flights, n = Inf)

# print all columns
print(flights, width = Inf)

dplyr имеет vignette о кадрах данных, которые предоставляют больше технических деталей.

Ответ 2

http://www.inside-r.org/packages/cran/dplyr/docs/tbl_df

Кадр данных tbl обертывает локальный фрейм данных. Основным преимуществом использования tbl_df по регулярному кадру данных является то, что объекты tbl: tbl печатают только несколько строк и все столбцы, которые помещаются на одном экране, и описывают остальную часть текста как текст.

от

http://cran.r-project.org/web/packages/dplyr/dplyr.pdf

Locales Обратите внимание, что для локальных фреймов данных упорядочение выполняется в коде С++, который не имеет доступа к локальному определенному порядку, обычно выполняемому в R. Это означает, что строки упорядочены так, как если бы в локали C