Julia:如何使colingly返回数组而不是数组数组?

时间:2017-10-02 02:00:29

标签: julia

我想创建一个查看DataFrame的每一列并返回一个布尔值的函数,所以我最终得到一个布尔数组。这是代码

# some random dataframe
df = DataFrame([1:3, 4:6])

# a function that returns an array of boolean
function some_bool_fn(df)::Array{Bool}
    array_of_arrays = colwise(df) do sdd3
        # for illustration only
        return true
    end
    array = [a[1] for a in array_of_arrays]
    return array
end

# calling the function
some_bool_fn(dd3)

除了找到

行外,这个有效
        array = [a[1] for a in array_of_arrays]
有点浪费。基本上我得到一个数组数组作为colwise的输出,所以我不得不将数组数组放入一个简单的bool数组中。有没有办法编写代码,以便我可以避免这行代码?

1 个答案:

答案 0 :(得分:3)

正如@Gnimuc评论的那样,这种行为正在改变。

如果你看一下主分支:https://github.com/JuliaData/DataFrames.jl/blob/master/src/groupeddataframe/grouping.jl#L241你会看到另一个版本。你可以复制它:

mycolwise(f, d::AbstractDataFrame) = [f(d[i]) for i in 1:ncol(d)]