如何计算数据框中所有唯一值的数量?

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列相加到一列中,以便可以对此“合并”列使用计数函数?


你是想计算所有字符还是只计算非数字字符?(例如 "AB12" 是 2 还是 4?) - Señor O
为什么不直接使用 count(Data[,-1]) 呢? - Ferdinand.kraft
嗨。我想知道整个数据框中有多少个“AB123”。你可以把“AB123”换成“dog”,把“B123”换成“cat”。然后我想知道“dog”和“cat”这两个词在数据框中出现了多少次。 - Roccer
1
请求计算“字符”并不清晰。您应该要求计算“唯一值”、“标记”、“诊断”或类似的内容。在“AB123”中有5个字符。 - IRTFM
1个回答

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接