【发布时间】:2018-06-10 18:54:01
【问题描述】:
如代码所示,我正在尝试对 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 中。
提前致谢。
【问题讨论】:
-
你能试试comprehension:
[mean_n_var(convert(Array, row)) for row in eachrow(iris[1:4])]吗? -
另一种选择是
map:map(row->mean_n_var(convert(Array, row)), eachrow(iris[1:4])) -
要得到一个矩阵作为输出,
reshape和一个理解的组合:reshape([v for row in eachrow(iris[1:4]) for v in mean_n_var(convert(Array, row))],2,:)