R:基于计数聚合并创建列
我肯定这个问题以前被问过,但我似乎在任何地方都找不到答案,所以如果这是重复的,我道歉 我正在寻找一个R代码,它允许我在R中聚合一个变量,但这样做会创建新的列来计算因子级别的实例 例如,假设我有以下数据:R:基于计数聚合并创建列,r,dplyr,lapply,R,Dplyr,Lapply,我肯定这个问题以前被问过,但我似乎在任何地方都找不到答案,所以如果这是重复的,我道歉 我正在寻找一个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
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完成。然后,我需要能够循环遍历代码,并在VAR1中每次出现新级别时创建一个新列。最后,我需要在每个星期内对Var1的每个级别进行计数。请注意,我可能可以找到一种手动执行此操作的方法,但我正在寻找一种自动化的解决方案,因为在Var1中我将有数千个唯一的值。结果会是这样的:
Week a b c
1 2 3 0
2 1 1 3
3 2 2 0
我认为从你提问的措辞来看,你一直在寻找错误的东西/太复杂的东西。这是一个简单的数据重塑问题,因此可以通过重塑2解决:
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
library(重塑2)
#创建宽数据帧(从长数据帧开始)
res res
a、b、c周
1 1 2 3 0
2 2 1 1 3
3 3 2 2 0
哇,真的那么简单。R的美丽。谢谢!