Как подсчитать все уникальные значения в data.frame

У меня есть набор данных с диагнозами в качестве переменных и пациентами в качестве наблюдений. Это 32 переменных и 5000 наблюдений.

Взгляните на этот пример.

Моя цель - подсчитать и суммировать все диагнозы во фрейме данных.

set.seed(1)
Data <- data.frame(id = seq(1, 10), 
Diag1 = sample(c("A123", "B123", "C123"), 10, replace = TRUE), 
Diag2 = sample(c("D123", "E123", "F123"), 10, replace = TRUE), 
Diag3 = sample(c("G123", "H123", "I123"), 10, replace = TRUE), 
Diag4 = sample(c("A123", "B123", "C123"), 10, replace = TRUE), 
Diag5 = sample(c("J123", "K123", "L123"), 10, replace = TRUE), 
Diag6 = sample(c("M123", "N123", "O123"), 10, replace = TRUE), 
Diag7 = sample(c("P123", "Q123", "R123"), 10, replace = TRUE))
Data
class(Data)
mode(Data)

Я знаю, как это сделать для одной колонки с помощью пакета plyr

NoDiag1 <- count(Data, "Diag1")

Как я могу сделать это для всего фрейма данных вместо одной переменной?

Если это невозможно, как я могу добавить столбцы 1-7 к одному столбцу, чтобы я мог использовать функцию подсчета для этого «объединенного» столбца?


person Roccer    schedule 18.09.2013    source источник
comment
Вы хотите считать все символы или только нечисловые символы? (Так "AB12" 2 или 4?)   -  person Señor O    schedule 18.09.2013
comment
Почему не просто count(Data[,-1])?   -  person Ferdinand.kraft    schedule 18.09.2013
comment
Всем привет. Я хочу знать, сколько AB123 содержится во всем фрейме данных. Вы можете обменять AB123 на собаку и B123 на кошку. Затем я хотел бы знать, как часто слова собака и кошка появляются во фрейме данных.   -  person Roccer    schedule 18.09.2013
comment
Запрос на подсчет символов сбивал с толку. Вам следует попросить уникальные ценности, или жетоны, или диагнозы, или что-то подобное. В AB123 5 символов.   -  person IRTFM    schedule 18.09.2013
comment
@DWin спасибо за совет. Я это изменю.   -  person Roccer    schedule 18.09.2013


Ответы (1)


Вот подход без plyr с использованием table:

## Data[,-1] is the complete data.frame without the "id" column
table(unlist(Data[,-1]))

# A123 B123 C123 D123 E123 F123 G123 H123 I123 J123 K123 L123 M123 N123 O123 P123 Q123 R123 
#    5    8    7    2    3    5    4    4    2    1    4    5    4    5    1    4    3    3
person sgibb    schedule 18.09.2013