2013-09-18 3 views
3

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

Пожалуйста, ознакомьтесь с этим примером.

Это моя цель, чтобы считать и суммировать все диагнозы в кадре данных

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 в один столбец, чтобы я мог использовать функцию count для этого «объединенного» столбца?

+0

ли вы имеете в виду, чтобы сосчитать все символы или только нечисловых символов? (Итак, '' AB12 "' 2 или 4?) –

+0

Почему бы не просто 'count (Data [, - 1])'? –

+0

Привет. Я хочу знать, сколько «AB123» есть во всем кадре данных. Вы можете обменять «AB123» на «собаку» и «B123» с кошкой. Затем я хотел бы знать, как часто в кадре данных появляются слова «собака» и «кошка». – Roccer

ответ

5

Вот подход без 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 
+0

Интересно, что замена 'table' на' count' не работает ... –

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