我想知道是否有人知道如何以比我想象的更好的方式计算以下组合。
> library(lubridate)
> df <- data.frame(x=sample(now()+hours(1:3), 100, T), y=sample(1:4, 100, T))
> with(df, as.data.frame(table(x, y)))
x y Freq
1 2012-06-15 00:10:18 1 5
2 2012-06-15 01:10:18 1 9
3 2012-06-15 02:10:18 1 8
4 2012-06-15 00:10:18 2 9
5 2012-06-15 01:10:18 2 10
6 2012-06-15 02:10:18 2 12
7 2012-06-15 00:10:18 3 7
8 2012-06-15 01:10:18 3 9
9 2012-06-15 02:10:18 3 6
10 2012-06-15 00:10:18 4 5
11 2012-06-15 01:10:18 4 14
12 2012-06-15 02:10:18 4 6
我喜欢这种格式,但不幸的是,当我们运行x
并y
通过时table()
,它们被转换为因子。在最终输出中,它们可以作为原始类型很好地存在,但到达那里似乎有问题。目前我只是在之后手动修复所有类型,这真的很麻烦,因为我必须重新设置时区,并查找默认日期格式的百分比代码等。
似乎一个有效的解决方案将涉及对对象进行哈希处理,或者将整数映射到的唯一值,x
因此y
我们可以使用tabulate()
,然后映射回来。
想法?