2016-11-02 2 views
1

サイズがN*KのDataFrameを作成したい場合、一部の列をとし、その他の列をInt64とします。私がそれを可能にするDataFrameを定義する特定の方法はありますか?特定の列型のJuliaデータフレーム

これは私の現在のアプローチです:

df = convert(DataFrame, zeros(Float64, (N, K))) 
df[:,K-2] = convert(Array{Int64,1}, df[:,K-2]) 
df[:,K-1] = convert(Array{Int64,1}, df[:,K-1]) 

答えて

3

次の2つのデータフレームを連結できます。

julia> hcat(DataFrame(Float64, 3, 5), DataFrame(Int64, 3, 3)) 
3×8 DataFrames.DataFrame 
│ Row │ x1 │ x2 │ x3 │ x4 │ x5 │ x1_1 │ x2_1 │ x3_1 │ 
├─────┼────┼────┼────┼────┼────┼──────┼──────┼──────┤ 
│ 1 │ NA │ NA │ NA │ NA │ NA │ NA │ NA │ NA │ 
│ 2 │ NA │ NA │ NA │ NA │ NA │ NA │ NA │ NA │ 
│ 3 │ NA │ NA │ NA │ NA │ NA │ NA │ NA │ NA │ 

DataFrameコンストラクタはまた、引数としての型のベクトルを取ります

julia> DataFrame([Float64, Float64, Int64, Int64], [Symbol("x$i") for i in 1:4], 3) 
3×4 DataFrames.DataFrame 
│ Row │ x1 │ x2 │ x3 │ x4 │ 
├─────┼────┼────┼────┼────┤ 
│ 1 │ NA │ NA │ NA │ NA │ 
│ 2 │ NA │ NA │ NA │ NA │ 
│ 3 │ NA │ NA │ NA │ NA │ 

連結を使用してタイプの適切なベクトルを構築することができます:

julia> [repeat([Float64]; outer=4); repeat([Int64]; outer=2)] 
6-element Array{DataType,1}: 
Float64 
Float64 
Float64 
Float64 
Int64 
Int64