如何计算数据框中的数据类型

时间:2016-06-08 12:15:27

标签: r dataframe

有多少变量类型'因素'在数据集中?

> str(bollywood)

'data.frame':   52 obs. of  8 variables:
 $ Movie       : chr  "Dilwale" "Bajirao Mastani" "Hate Story 3" "Tamasha" ...
 $ Hero        : Factor w/ 39 levels "Abhishek_Bachchan",..: 38 30 36 28 34  29 31 20 35 19 ...
 $ Rdate       : Factor w/ 42 levels "01-05-2015","02-10-2015",..: 26 26 5 37 16 41 41 41 32 22 ...
 $ Ocollection : num  21 12.8 9.72 10.94 40.35 ...
 $ Wcollection : num  65.1 46.8 26.8 38.2 129.8 ...
 $ Fwcollection: num  102.7 86.2 42.2 53.5 172.8 ...
 $ Tcollection : num  148.7 184.2 51.7 67.3 210.2 ...
 $ Verdict     : Factor w/ 4 levels "Average","Flop",..: 3 3 4 1 3 2 2 2 2 4 ...

我可以手动看到数据框中有4个因素。有没有办法可以得到一些因子?我想计算数据框中的数据类型

2 个答案:

答案 0 :(得分:7)

或者更一般地说,要计算每种类型的数量,您可以使用

table(sapply(bollywood, class))

这将打印一个表,其中包含整个data.frame的每种数据类型的计数。

答案 1 :(得分:3)

由于OP的问题与特定类有关,我们可以使用sapply遍历列,检查它是factor还是sum逻辑向量。

sum(sapply(bollywood, is.factor))

或另一个选项是grepl

sum(grepl("Factor",capture.output(str(bollywood))))

更新

如果OP想同时检查characterfactor

sum(sapply(bollywood, function(x) is.factor(x)|is.character(x)))

更快的general方法

table(vapply(bollywood, class, ''))