【发布时间】:2017-07-13 15:35:46
【问题描述】:
我有一个结构如下的数据框:
df <- structure(list(name1 = c("A","A","B","B","A","A","B","B"),
name2 = c("B","B","C","C","ALL","ALL","ALL","ALL"),
pair_id = c(1,1,2,2,3,3,4,4),
year = c(2010, 2011, 2010, 2011, 2010, 2011,2010, 2011),
var1 = c(1.5,2,4,5,12,15,20,18)),
.Names = c("name1","name2","pair_id","year", "var1"),
row.names = c("1", "2", "3", "4", "5", "6", "7", "8"), class =("data.frame"))
我想计算每年 var1(分母为 name2=ALL)和 pair_id 的百分比份额。输出应如下所示:
df <- structure(list(name1 = c("A","A","B","B","A","A","B","B"),
name2 = c("B","B","C","C","ALL","ALL","ALL","ALL"),
pair_id = c(1,1,2,2,3,3,4,4),
year = c(2010, 2011, 2010, 2011,2010,2011,2010,2011),
var1 = c(1.5,2,4,5,12,15,18,20),
var1_share = c(0.125,0.133333,0.2,0.2777,1,1,1,1)),
.Names = c("name1","name2","pair_id","year", "var1","var1_share"),
row.names = c("1", "2", "3", "4", "5", "6", "7", "8"), class =("data.frame"))
提前谢谢你!
【问题讨论】:
-
嗨,Korone,你说的份额是什么意思?你有什么努力做到这一点?看来你已经计算了一年,所以你只需要为每一年和pair_id做那个函数。 combn 可以选择为每个组合执行一个功能
-
嗨@Llopis。是的,确实是百分比。我已经编辑了帖子以使其更清晰。