R 如何基于此数据帧子集的值计算列的比率?

R 如何基于此数据帧子集的值计算列的比率?,r,dplyr,R,Dplyr,我有以下数据框: date      value country 2016-10-1 1 US 2016-10-1 3 FR 2016-10-1 4 Other 2016-10-2 3 US 2016-10-2 2 FR 以下是可复制的示例: mydf <- data.frame( date=c("2016-10-01","2016-

我有以下数据框:

date           value     country
2016-10-1      1         US
2016-10-1      3         FR
2016-10-1      4         Other
2016-10-2      3         US
2016-10-2      2         FR
以下是可复制的示例:

mydf <- data.frame(
    date=c("2016-10-01","2016-10-01","2016-10-01","2016-10-02","2016-10-02"),
    value=c(1,3,4,3,2),
    country=c("US", "FR", "Other", "US", "FR"))
我试过这样的方法:

mydf <- mydf %>% mutate(ratio = value / sum(mydf[date==date]))
mydf%变异(比率=值/总和(mydf[date==date]))
但是,这并不奇怪,它不会运行。我不知道如何计算给定日期的总数


有线索吗

你的问题的答案是

df %>% group_by(date) %>% mutate(ratio = value/sum(value))

你问题的答案是

df %>% group_by(date) %>% mutate(ratio = value/sum(value))

试试
groupby(mydf,date)%%>%mutate(ratio=value/sum(value))
Try
groupby(mydf,date)%%>%mutate(ratio=value/sum(value))
该死,太简单了,我都错过了。谢谢;)使用
mean
代替此
value/sum(value)
为什么使用mean?这不是平均值,而是一个比率,不是吗?如果你希望计算出的值是其他国家价值与美国价值之间的比率,你会怎么做?因此,对我们来说,新的价值将是1,而对其他国家来说,这将是他们当年的价值除以美国当年的价值。这似乎是一个非常相似的问题。妈的,太简单了,我错过了。谢谢;)使用
mean
代替此
value/sum(value)
为什么使用mean?这不是平均值,而是一个比率,不是吗?如果你希望计算出的值是其他国家价值与美国价值之间的比率,你会怎么做?因此,对我们来说,新的价值将是1,而对其他国家来说,这将是他们当年的价值除以美国当年的价值。这似乎是一个非常相似的问题。