首页 > 解决方案 > 在 Julia 中修改 DataFrame

问题描述

寻找一个像by我的 DataFrame 一样工作但不会折叠的函数。在 RI 中会使用dplyr's groupby(b) %>% mutate(x1 = sum(a))。我不想丢失表中的信息,例如 variable 中的信息:c

mydf = DataFrame(a = 1:4, b = repeat(1:2,2), c=4:-1:1)
bypreserve(mydf, :b,  x -> sum(x.a))
│ Row │ a     │ b     │ c     │ x1
│     │ Int64 │ Int64 │ Int64 │Int64 
├─────┼───────┼───────┼───────┤───────
│ 1   │ 1     │ 1     │ 4     │ 4
│ 2   │ 2     │ 2     │ 3     │ 6
│ 3   │ 3     │ 1     │ 2     │ 4
│ 4   │ 4     │ 2     │ 1     │ 6

标签: juliadplyr

解决方案


讨论了添加此功能,但我会说它需要几个月的时间才能发货(一般的想法是允许selectgroupby关键字参数+还添加transform功能类似select但保留源数据框的列)。

目前解决方案是使用joinafter by

join(mydf, by(mydf, :b, x1 = :a => sum), on=:b)

推荐阅读