0
我无法使用ddply和merge的组合来聚合某些变量。我使用的数据帧是真正的大,所以我把下面的例子:如何在不是所有变量的元素都存在于R上时使用ddply进行聚合
data_sample <- cbind.data.frame(c(123,123,123,321,321,134,145,000),
c('j', 'f','j','f','f','o','j','f'),
c(seq(110,180, by = 10)))
colnames(data_sample) <- c('Person','Expense_Type','Expense_Value')
我要计算,对每个人,J型支出的百分比值对人的总支出。
data_sample2 <- ddply(data_sample, c('Person'), transform, total = sum(Value))
data_sample2 <- ddply(data_sample2, c('Person','Type'), transform, empresa = sum(Value))
这是我做了什么按类型列出的总费用,但问题是,并不是所有的人都有类型j的费用,所以其比例应为0,我不知道如何离开每人只有一条线,其中包括j类费用总额的百分比。
我可能没有说清楚。
谢谢!
它的工作!非常感谢你。 –
假设原始数据集中的其他列的数据仅根据Person来变化。在聚合后我怎么能离开这些值? –
因此,对于每个人来说,它是相同的值(例如,对于所有行,人员A只有x,对于所有行,人员B只有y)...?合并到一个不同的表格可能会起作用。否则,您可以将变量添加到'dplyr'中的'group_by'。 – bouncyball