#r
Вопрос:
У меня есть два вектора, и я использую табличную функцию с комбинацией двух векторов.
ratings <- c("Worst","Worst","Bad","Bad","Good","Bad","Bad")
reviewers <- c("Siskel","Siskel","Elbert","Elbert","Martin","Rowen","Martin")
f3 <- table(ratings,reviewers)
f3:
ratings Elbert Martin Rowen Siskel
Bad 2 1 1 0
Good 0 1 0 0
Worst 0 0 0 2
Если вы рассматриваете столбец Элберт, он отображается как ‘2’,’0′,’0′ для плохого, хорошего, худшего и так далее для других столбцов. Я хочу знать, как генерируются эти значения.
Комментарии:
1.
"Siskel"
появляется дважды, поэтому все числа в столбце Siskel будут складываться до двух; для этих двух появлений соответствующие значения вratings
обоих"Worst"
, поэтому есть ноль плохих, ноль хороших и два худших. Это объясняет ту колонку. Этот процесс повторяется для всех значений.
Ответ №1:
Если вы добавите знак вопроса перед функцией, ?table()
вы сможете просмотреть документацию. Первый аргумент table()
is ...
, который определяется как:
один или несколько объектов, которые могут быть интерпретированы как факторы (включая символьные строки), или список (или фрейм данных), компоненты которого могут быть интерпретированы таким образом. (Для as.table аргументы передаются определенным методам; для as.data.frame не используются.)
Попробуйте запустить любую из этих строк, отметив, что вы получите тот же результат, что и table(ratings,reviewers)
table(data.frame(ratings,reviewers)
или
table(tibble::tibble(ratings,reviewers))
Целые числа в таблице, совершенно очевидно, считаются на каждой комбинации уровней факторов.
Изучите аргументы, чтобы найти дополнительные способы настройки таблицы. Один из них, который вам может пригодиться, — это возможность переименовывать измерения с помощью dnn=
аргумента. Вот пример использования:
table(ratings,reviewers, dnn=c('Movie scores', "Movie critics"))
Использование ?
перед функцией в R-отличный способ начать работу.