julia 1.0.0 + DataFrames v0.13.0 の the dot operator
julia が 1.0 になったことで、the dot operator というやつが導入・強化されているようです。
version は下記のとおりです。
(v1.0) pkg> status Status `~/.julia/environments/v1.0/Project.toml` [a93c6f00] DataFrames v0.13.0 以下略
まずは、普通にデータフレームを組みます。
julia> df = DataFrame(a=randn(10^5),b=randn(10^5)) 100000×2 DataFrame │ Row │ a │ b │ ├────────┼───────────┼───────────┤ │ 1 │ 1.06429 │ -0.665591 │ │ 2 │ 1.34957 │ 1.5088 │ │ 3 │ 1.26694 │ -1.61644 │ ...略 julia> df[:c] = "hoge".* string.(collect(1:10^5)) 100000-element Array{String,1}: "hoge1" "hoge2" "hoge3" ...略
df の a の column を表示する方法は、df[:a] でしたが、df.a という書式が許されるようになりました。
julia> df[:a] 100000-element Array{Float64,1}: 1.0642945299080955 1.3495717535723946 1.2669443981981892 ...略 julia> df.a 100000-element Array{Float64,1}: 1.0642945299080955 1.3495717535723946 1.2669443981981892 ...略
R だったら df$a で良かったものを、df[:a]と少しタイプする量が増えていました。これで、ほぼ対等になりますね。
幸か不幸か、python 使いの df.describe みたいな書式も期待してしまいますが、許されていないようです。
julia> describe(df) 3×8 DataFrame. Omitted printing of 2 columns │ Row │ variable │ mean │ min │ median │ max │ nunique │ ├─────┼──────────┼────────────┼──────────┼────────────┼───────────┼─────────┤ │ 1 │ a │ 0.006449 │ -4.20703 │ 0.00854218 │ 4.48357 │ │ │ 2 │ b │ 0.00460347 │ -4.75253 │ 0.00416373 │ 4.2176 │ │ │ 3 │ c │ │ hoge1 │ │ hoge99999 │ 100000 │ julia> df.describe ERROR: KeyError: key :describe not found ...略
早く使ってみたいところですが、本格的に使い始めるのは、PyCall.jl が動くようになってからです。