如何使用 do 和 "by" 以及 "groupby" 重写这个已弃用的表达式 (Julia)

How to rewrite this deprecated expression using do and "by", with "groupby" (Julia)

目标是生成假数据。

我们生成一组参数,

## Simulated data
df_3 = DataFrame(y = [0,1], size = [250,250], x1 =[2.,0.], x2 =[-1.,-2.])

现在,我想自己生成假数据,

df_knn =by(df_3, :y) do df
  DataFrame(x_1 = rand(Normal(df[1,:x1],1), df[1,:size]),
  x_2 = rand(Normal(df[1,:x2],1), df[1,:size]))
end

如何在这里用 groupby 替换 by

来源:此摘录来自《数据科学与 Julia》(2019 年)一书。

我想这就是你的意思:

julia> combine(groupby(df_3, :y)) do df
         DataFrame(x_1 = rand(Normal(df[1,:x1],1), df[1,:size]), 
                   x_2 = rand(Normal(df[1,:x2],1), df[1,:size]))
       end
500×3 DataFrame
 Row │ y      x_1        x_2
     │ Int64  Float64    Float64
─────┼─────────────────────────────
   1 │     0   1.88483    0.890807
   2 │     0   2.50124   -0.280708
   3 │     0   1.1857     0.823002
  ⋮  │   ⋮        ⋮          ⋮
 498 │     1  -0.611168  -0.856527
 499 │     1   0.491412  -3.09562
 500 │     1   0.242016  -1.42652
                   494 rows omitted