我在数据框中有一个包含有序因子的列。我通过熔化数据然后投射数据来总结每个因子列中的条目数。到现在为止还挺好。但我需要包含不存在行的因素,以便汇总数据显示所有可能的因素,而不仅仅是使用的因素。
数据框:
> str(instats)
'data.frame': 75 obs. of 5 variables:
$ incident : Factor w/ 75 levels "INC000000503771",..: 1 2 3 4 5 6 7 8 9 10 ...
$ submit.date :Class 'Date' num [1:75] 14907 14907 14907 14907 14907 ...
$ resolved.date:Class 'Date' num [1:75] 14910 14907 14910 14907 14907 ...
$ closed.date :Class 'Date' num [1:75] 14913 14910 14913 14910 14910 ...
$ status : Ord.factor w/ 6 levels "Opened"<"Resolved Pending Customer Action"<..: 5 5 5 5 5 5 5 5 5 5 ...
>
到目前为止我做了什么:
> df.melt <- melt(instats,id=c('status'),measure=c('incident'))
> cast(df.melt, status ~ .,length)
我得到了:
status (all)
1 Resolved Pending Customer Action 11
2 Pending xxx Action 3
3 Pending yyy Action 7
4 Closed 54
我想要的是:
status (all)
1 Opened 0
2 Resolved Pending Customer Action 11
3 Pending xxx Action 3
4 Pending yyy Action 7
5 Closed 54
6 Canceled 0
我理解为什么熔化/铸造给我的结果呢。但是我怎么能这样做才能得到我想要的结果?
答案 0 :(得分:2)
您可以使用table
instats <- data.frame(status=sample(letters[1:5],75,TRUE))
instats$status <- factor(instats$status,levels=letters[1:6])
table(instats$status)
as.data.frame(table(instats$status))
# or summary
summary(instats$status)