在julia中将带标签的数据帧转换为数组

在julia中将带标签的数据帧转换为数组,julia,Julia,我有Julia中带有标题的数据帧,但我需要将其转换为数组进行一些过滤,有一些人建议使用类似的帖子 使用: 若要从dataframe获取数组,但此方法不适用于带有标头的dataframe,有什么建议吗 数据帧格式: FP | C1 | Cz | C2 .... * | * | * | * .... . | . | . | . .... . | . | . | . .... . | . | . | . .... 您是否尝试过转换(矩阵,虹膜[:,1:3])? e、

我有Julia中带有标题的数据帧,但我需要将其转换为数组进行一些过滤,有一些人建议使用类似的帖子 使用:

若要从dataframe获取数组,但此方法不适用于带有标头的dataframe,有什么建议吗

数据帧格式:

FP | C1 | Cz | C2 ....
*  | *  | *  | *  ....
.  | .  | .  | .  ....
.  | .  | .  | .  ....
.  | .  | .  | .  ....

您是否尝试过转换(矩阵,虹膜[:,1:3])? e、 g


公认的答案很好地回答了上述问题

但是,如果您希望将数据帧转换为数组的唯一原因是对其进行过滤,那么可能需要研究可用于直接过滤数据帧对象的方法。有关一些示例,请参见和


(如果这比回答更适合评论,请提前道歉,因为这里的声誉还不足以评论。)

这在Julia 0.7及以上版本中不起作用。相反,请尝试
Matrix(df)
并查看教程。

关于
convert
方法的更新,现在,
convert(::Type{Array},df::AbstractDataFrame)
被弃用,取而代之的是:

using DataFrames
convert(Matrix, df)

这相当于矩阵(df)

前一种解决方案不起作用尝试矩阵(df,[:,1:3])

完美!:-)很乐意帮忙。注意:如果您有Null/NA值,您可以给convert第三个参数来替换它们(因为它们在数组中是不允许的),例如
convert(数组,iris[1:3],0.)
。对于Julia 1.0,它现在提示将其更改为
convert(矩阵,
,而不是
convert(数组,
)。
julia> using DataFrames

julia> df = DataFrame(a = 1:4, b = 1:4, c = randn(4), d = randn(4))
4×4 DataFrame
│ Row │ a     │ b     │ c        │ d          │
│     │ Int64 │ Int64 │ Float64  │ Float64    │
├─────┼───────┼───────┼──────────┼────────────┤
│ 1   │ 1     │ 1     │ 1.72172  │ -0.377729  │
│ 2   │ 2     │ 2     │ 0.206415 │ -0.266014  │
│ 3   │ 3     │ 3     │ 1.03785  │ -0.0317582 │
│ 4   │ 4     │ 4     │ 0.632473 │ -0.409014  │

julia> convert(Matrix, df[:,1:3])
4×3 Array{Float64,2}:
 1.0  1.0  1.72172
 2.0  2.0  0.206415
 3.0  3.0  1.03785
 4.0  4.0  0.632473
using DataFrames
convert(Matrix, df)