我很难描述这个问题,所以最好用一个例子来解释(可以从很差的问题标题中看到)。基于一个因素在数据框上执行操作
使用dplyr我有一个group_by
和summarize
的结果我有一个数据框,我想进一步按因子操作。
举个例子,这里有一个数据帧,看起来像我的dplyr操作的结果:
> df <- data.frame(run=as.factor(c(rep(1,3), rep(2,3))),
group=as.factor(rep(c("a","b","c"),2)),
sum=c(1,8,34,2,7,33))
> df
run group sum
1 1 a 1
2 1 b 8
3 1 c 34
4 2 a 2
5 2 b 7
6 2 c 33
我想这取决于run
的值来划分sum
。举例来说,如果我有:
> total <- data.frame(run=as.factor(c(1,2)),
total=c(45,47))
> total
run total
1 1 45
2 2 47
然后我最后的数据帧将是这样的:
> df
run group sum percent
1 1 a 1 1/45
2 1 b 8 8/45
3 1 c 34 34/45
4 2 a 2 2/47
5 2 b 7 7/47
6 2 c 33 33/47
当我手动手工插入分数在percent
栏,显示我想要的操作做。
我知道可能有一些dplyr的方式来做到这一点与mutate
,但我似乎无法找出现在。这将如何完成?
DF $%的< - DF $金额/总[DF $来看, '总'] – HubertL
非常优雅的HubertL。如果您发布答案,我会接受。这比我用mutate设想的更简单(尽管这确实有效)。 –