gpt4 book ai didi

for-loop - 如何将 Julia for 循环返回保存在数组或数据帧中?

转载 作者:行者123 更新时间:2023-12-02 01:05:15 25 4
gpt4 key购买 nike

如代码所示,我正在尝试在 DataFrame 的每一行上应用一个函数。

using RDatasets
iris = dataset("datasets", "iris")

function mean_n_var(x)
mean1=mean([x[1], x[2], x[3], x[4]])
var1=var([x[1], x[2], x[3], x[4]])
rst=[mean1, var1]
return rst
end

mean_n_var([2,4,5,6])

for row in eachrow(iris[1:4])
println(mean_n_var(convert(Array, row)))
end

但是,我想将它们保存在数组或另一个 DataFrame 中,而不是打印结果。

提前致谢。

最佳答案

我认为值得一提的是,除了已经提到的内容之外,还有一些可用的选项。

我想你想要一个 MatrixDataFrame .有几种可能的方法。

首先是最直接的得到一个Matrix :

mean_n_var(a) = [mean(a), var(a)]
hcat((mean_n_var(Array(x)) for x in eachrow(iris[1:4]))...) # rows
vcat((mean_n_var(Array(x)).' for x in eachrow(iris[1:4]))...) # cols

另一种可能的方法是矢量化,例如:
mat_iris = Matrix(iris[1:4])
mat = hcat(mean(mat_iris, 2), var(mat_iris, 2))
df = DataFrame([vec(f(mat_iris, 2)) for f in [mean,var]], [:mean, :var])
DataFrame(mat) # this constructor also accepts variable names on master but is not released yet

关于for-loop - 如何将 Julia for 循环返回保存在数组或数据帧中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48037732/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com