【发布时间】:2018-06-23 11:25:39
【问题描述】:
我在 R (p2.df) 中有一个数据框,它已将一系列值汇总到以下内容中(还有更多列,这只是一个精简版本):
genre rating cc dd ee
Adventure FAILURE 140393 20865 358806
Adventure SUCCESS 197182 32872 492874
Fiction FAILURE 140043 14833 308602
Fiction SUCCESS 197725 28848 469879
Sci-fi FAILURE 8681 1682 24259
Sci-fi SUCCESS 7439 1647 22661
我想获得每列比例的净值,我可以在电子表格中获得,但不能在 R Studio 中获得。
电子表格中的公式遵循以下模式:
net_cc = (cc(success)/(cc(success)+dd(success)+ee(success)) - (cc(fail)/(cc(fail)+dd(fail)+ee(fail))
我想在 R 中得到的是可以从电子表格中得到的这张表:
genre net_cc net_dd net_ee
Adventure 0.002801373059 0.005350579467 -0.008151952526
Fiction -0.01825346696 0.009417699223 0.008835767735
Sci-fi -0.01641517271 0.003297091109 0.0131180816
有什么想法吗?如果有任何用处,我通过将以前的表格总结为以下形式创建了 p2.df:
library(dplyr)
p2.df<- s2.df %>% group_by(genre,rating) %>% summarise_all(sum)
【问题讨论】:
-
谢谢大家,我选择 Moody's 作为答案,因为它是最简单的(我无法让 utubun 更整洁),但 MKR 也可以。
-
...然后它停止工作。我认为这是因为我使用 'summarise_at' 来获取上述数据框,它不喜欢与组合作。
-
这可能是因为您通过
data.frame()创建数据集或通过read.csv()读取数据集,默认情况下会将字符串转换为因子。我使用将rating和genre转换为character的数据编写了我的示例,这是tible和read_csv来自readr的默认值。请查看@MKR 在他的回答中使用的数据(最后一行 -stringsAsFactors = FALSE)。 -
谢谢你是对的,表格有分组,所以我添加了 as.data.frame() 来修复它。