3

我有一个数据框,其中将诊断作为变量,将患者作为观察结果。它有 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 列加到一列中,以便我可以对这个“合并”列使用计数功能?

4

1 回答 1

5

Here is an approach without plyr using 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
于 2013-09-18T19:14:20.953 回答