我确定之前已经问过这个问题,但我似乎无法在任何地方找到答案,所以如果这是重复,我会道歉。
我正在寻找允许我在R中聚合变量的R代码,但这样做会创建新的列来计算因子级别的实例。
例如,假设我有以下数据:
Week Var1
1 a
1 b
1 a
1 b
1 b
2 c
2 c
2 a
2 b
2 c
3 b
3 a
3 b
3 a
首先,我希望按周汇总。我确信这可以通过dplyr中的group_by来完成。然后,我需要能够循环遍历代码并在每次Var 1中出现新级别时创建一个新列。最后,我需要每周内每个级别的Var1计数。请注意,我可能想办法手动执行此操作,但我正在寻找一种自动化解决方案,因为我将在Var1中拥有数千个唯一值。结果将是这样的:
Week a b c
1 2 3 0
2 1 1 3
3 2 2 0
答案 0 :(得分:2)
我认为从你说问题的方式来看,你一直在寻找错误的东西/太复杂的东西。这是一个简单的数据重塑问题,因此可以通过reshape2来解决:
library(reshape2)
#create wide dataframe (from long)
res <- dcast(Week~Var1, value.var="Var1",
fun.aggregate = length, data=data)
> res
Week a b c
1 1 2 3 0
2 2 1 1 3
3 3 2 2 0