Почему фрейм данных позволяет двухмерный выбор без запятой? - PullRequest
0 голосов
/ 16 апреля 2019

Насколько я понимаю, вы можете выбирать из данных двумя способами. Если вы используете [] и не используете запятую, тогда это выбор в стиле списка. Это работает так, поскольку в списке построен фрейм данных, и вы действительно просто извлекаете компоненты верхнего уровня.

И, если вы добавите запятую, тогда вы делаете выбор стиля матрицы и получаете этот синтаксис [rows, columns].

Если это правда, то почему я могу выбирать из массива данных с массивом?

df <- as.data.frame(state.x77)
df2 <- cbind(df, rep(NA, nrow(df)))
df2[is.na(df2)]

is.na() - это массив с dim атрибутами для 50 строк и 9 столбцов.

Откуда он знает, что нужно выбирать по каждому значению вместо того, чтобы делать типичный выбор среди столбцов?

1 Ответ

1 голос
/ 16 апреля 2019

is.na(df2) создает логическую матрицу с такими же размерами, что и у data.frame, df2.

Подстановка data.frame для матрицы тех же размеров является стандартной операцией.См. ?'[.data.frame' для получения дополнительной информации.

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