2013-11-18 3 views
0

В R я могу вернуть результаты подсчета, используя имена конкретных столбцов, которые меня интересуют как массив, как показано ниже.Как создать матрицу счетчиков R

require("plyr") 
bevs <- data.frame(cbind(name = c("Bill", "Llib"), drink = c("coffee", "tea", "cocoa", "water"), cost = seq(1:8))) 
count(bevs, c("name", "drink")) 

# produces 
    name drink freq 
1 Bill cocoa 2 
2 Bill coffee 2 
3 Llib tea 2 
4 Llib water 2 

Как я могу получить результат подсчета два конкретных имен столбцов в матрице, которая имеет столбцы: все уникальные напитки, строки: все уникальные имена и клетку: freqs (как показано ниже)?

 cocoa coffee tea water 
Bill 2  2  0 0 
Llib 0  0  2 2 

P.S: Очевидно, что решение не нужно использовать plyr.

ответ

1

Вы хотите резервный стол, который можно создать с помощью table:

table(bevs[, c("name", "drink")]) 
#  drink 
#name cocoa coffee tea water 
# Bill  2  2 0  0 
# Llib  0  0 2  2 
+0

Спасибо вам Роланд. Я отредактировал свой вопрос: я действительно хочу иметь возможность конкретно указывать столбцы, которые я хочу использовать (а не bevs [, - 3]), так как мой data.frame состоит из многих столбцов в действительности. Как я могу это сделать? – Rhubarb

+0

Я отредактировал ответ, чтобы удовлетворить это требование. Тем не менее, вам может быть полезно прочитать некоторые введения в R, чтобы лучше понять подмножество. – Roland

+0

Да, я понял из-за того, что модификация, о которой я просил, действительно была очень простой. Спасибо! – Rhubarb

Смежные вопросы