For loop 如何为数组或数据帧中的循环返回保存Julia?

For loop 如何为数组或数据帧中的循环返回保存Julia?,for-loop,dataframe,julia,For Loop,Dataframe,Julia,正如代码所示,我试图在数据帧的每一行上应用一个函数 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

正如代码所示,我试图在数据帧的每一行上应用一个函数

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
但是,我不想打印结果,而是想将它们保存在一个数组或另一个数据帧中


提前感谢。

我认为值得一提的是,在已经提到的基础上,还有更多的选择

我假设您想要一个
矩阵
数据帧
。有几种可能的方法

第一个是获取矩阵的最直接方法:

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

你能试试吗:
[mean_n_var(convert(Array,row))
?另一种选择是
map
map(row->mean_n_var(convert(Array,row)),eachrow(iris[1:4])
以矩阵作为输出,将
重塑
和理解相结合:
重塑([v]每一行(iris[1:4]))对于平均值中的v(转换(数组,行))],2,:)