如何计算data.frame中的所有唯一值

时间:2013-09-18 19:09:16

标签: r count dataframe token plyr

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

1 个答案:

答案 0 :(得分:5)

以下是使用table

plyr 的方法
## 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