The aggregation parameter in the dcast
function of the reshape2
-package defaults to length
(= count). In the data.table
-package an improved version of the dcast
function is implemented. So in your case this would be:
library('reshape2') # or library('data.table')
newdf <- dcast(sample.data, Case ~ Decision)
or with using the parameters explicitly:
newdf <- dcast(sample.data, Case ~ Decision,
value.var = "Decision", fun.aggregate = length)
This gives the following dataframe:
> newdf
Case Approved Declined Referred
1 1 1 0 3
2 2 0 1 1
3 3 0 1 2
4 4 1 0 0
5 5 0 1 0
If you don't specify an aggregation function, you get a warning telling you that dcast
is using lenght
as a default.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…