arrays - 如何在 Julia 中将函数应用于其中包含数组的数据帧?

标签 arrays multidimensional-array julia

我希望对这些问题说清楚,但让我在这里更好地解释一下:
我有这个数据框:

m = DataFrame(
x = [1,2,3],
y = [[1,2,3],[4,5,6],[7,8,9]])

我的目标是获得列 z,它是每个 y 数组的平方加上对应于列中位置的 x 字符串。也许你可以通过这种方式得到它:
m = DataFrame(
x = [1,2,3],
y = [[1,2,3],[4,5,6],[7,8,9]],
z = [[2,5,10],[18,27,38],[52,67,84]])

我可以使用以下代码在 R 中完成:
m <- m %>% mutate(z = map2(x,y, ~map2_dbl(.x,.y, ~ (.x + .y^2))))

Julia 有类似的东西吗?
问候

最佳答案

在 DataFrames.jl master(即将发布)上,您可以使用 transform功能:

julia> using DataFrames

julia> m = DataFrame(x = [1,2,3], y = [[1,2,3],[4,5,6],[7,8,9]])
3×2 DataFrame
│ Row │ x     │ y         │
│     │ Int64 │ Array…    │
├─────┼───────┼───────────┤
│ 1   │ 1     │ [1, 2, 3] │
│ 2   │ 2     │ [4, 5, 6] │
│ 3   │ 3     │ [7, 8, 9] │

julia> transform(m, [:x, :y] => ByRow((x,y) -> y.^2 .+ x) => :z)
3×3 DataFrame
│ Row │ x     │ y         │ z            │
│     │ Int64 │ Array…    │ Array…       │
├─────┼───────┼───────────┼──────────────┤
│ 1   │ 1     │ [1, 2, 3] │ [2, 5, 10]   │
│ 2   │ 2     │ [4, 5, 6] │ [18, 27, 38] │
│ 3   │ 3     │ [7, 8, 9] │ [52, 67, 84] │

关于arrays - 如何在 Julia 中将函数应用于其中包含数组的数据帧?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61042262/

相关文章:

actionscript-3 - Array.filter 动态测试值

java - 将数组中出现的字符打印到二维数组

C++ 多维数组索引

julia - Julia 中的多维数组理解

julia - 可以对 Julia (julia-lang) 代码进行静态分析以避免运行时类型错误吗?

python - 如何从 python 中的原始输入创建 numpy 数组?

javascript - 如何将数组的可观察值转换为可观察值数组

julia - 在 Julia 中启动 Genie 应用程序时找不到页面

c - puts() 显示 strcpy 的全部内容,即使发生 dest 溢出

multidimensional-array - 转换 [[T; 的最佳方法是什么? 4]; 3] 变成 [T; 12]?