从dataframe按组计算比例

从dataframe按组计算比例,r,R,我有一个词频数据框,例如: df <- data.frame( Predictor = c("for","of","as","for","for","as","of","of","as","for"), ToPredict = c("sure","course","much","him","keeps","far","them","this","an","petes"), Freq = c(53,32,21,17,13,5,3,2,2,1)) 目前,我有一个总和的

我有一个词频数据框,例如:

df <- data.frame(
    Predictor = c("for","of","as","for","for","as","of","of","as","for"),
    ToPredict = c("sure","course","much","him","keeps","far","them","this","an","petes"),
    Freq = c(53,32,21,17,13,5,3,2,2,1))
目前,我有一个总和的数据框架:

sums <- aggregate(df$Freq, by=list(Category=df$Predictor), FUN=sum)
每封邮件的金额:

with(df, ave(Freq, Predictor, FUN=prop.table))

我暗自怀疑这是一个重复的问题,但是
和(df,ave(Freq,Predictor,FUN=prop.table))
应该可以做到。可能是重复的候选人,尽管答案不是很好-而且很可能是。然而,我花了不少时间才找到答案。你的解决方案有效。非常感谢。是的,我看到了那一个,但没能从中得出一个成功的结论。再次感谢!这个也行。而且对我来说更直观(尽管我认为速度较慢,因为它会创建一个额外的向量)。不过,我不能接受我(最近的邮件)的答复(至少不能马上接受)。所以这会有用的。@b工程师,我不知道SQL@BdEngineer无论什么
df$Props <- with(df, Freq/sums$x[which(sums$Category == Predictor)])
with(df, ave(Freq, Predictor, FUN=prop.table))
a=aggregate(df$Freq, by=list(df$Pred), FUN=sum)
a1=a[,2]
names(a1)=as.character(a[,1])
df$Props=df$Freq/a1[df$Pred]