首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何根据该数据帧的子集的值计算列的比率?

如何根据该数据帧的子集的值计算列的比率?
EN

Stack Overflow用户
提问于 2016-05-11 15:07:38
回答 1查看 6.9K关注 0票数 1

我有以下数据框架:

代码语言:javascript
复制
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

以下是可复制的示例:

代码语言:javascript
复制
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"))

我想添加一个新的列“比率”,它计算一行与同一日期的所有行相比的比率。

例如,对于2016-10-1,我们的总价值是8,所以2016-10-1 / US行的比率是1/8,2016-10-1 / FR的比值是3/8

预期的数据框架是:

代码语言:javascript
复制
date           value     country   ratio
2016-10-1      1         US        0.125
2016-10-1      3         FR        0.375
2016-10-1      4         Other     0.5
2016-10-2      3         US        0.6
2016-10-2      2         FR        0.4

我试过这样的方法:

代码语言:javascript
复制
mydf <- mydf %>% mutate(ratio = value / sum(mydf[date==date]))

但是,这并不令人惊讶,它不会运行。我不知道如何计算给定日期的总数。

有线索吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-11 15:19:15

你的问题的答案是

代码语言:javascript
复制
df %>% group_by(date) %>% mutate(ratio = value/sum(value))
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37166672

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档