有多少变量类型'因素'在数据集中?
> 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个因素。有没有办法可以得到一些因子?我想计算数据框中的数据类型
答案 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想同时检查character
和factor
列
sum(sapply(bollywood, function(x) is.factor(x)|is.character(x)))
更快的general
方法
table(vapply(bollywood, class, ''))