2015-09-14 11 views
5

私はいくつかの列のデータフレームがcolumn1、column2 ... column100と言っています。列のサブセットのみを選択するにはどうすればいいですか?(not column1)は、すべての列column2 ... column100を返す必要があります。juliaのデータフレーム列のサブセットのみを選択する方法

data[[colnames(data) .!= "column1"]]) 

は動作していないようです。

私はデータフレームを変更したくありません。私はちょうど

答えて

6

@Reza Afzalanは、DataFramesの列名はシンボルであるのに対して、文字列の配列を返します。

はジュリアは、条件付きリストの内包、あなたは私はこれがあなたに(それを変異させずに)削除列1で設定したデータが得られます

data[:, filter(x -> x != :column1, names(df))] 

だろうと思いませんでした素敵なものを持っていないことを考えます。あなたにも名のリストに対してチェックにこれを拡張することができます:

data[:, filter(x -> !(x in [:column1,:column2]), names(df))] 
+0

[ドキュメント](http://juliastats.github.io/DataFrames.jl/subsets/)選択のような名前のセットを使用して言及し、そのようなセットを定義する方法については深く関わっていませんが –

2

colnames(data) .!= "column1"#=私の例のように、特定の列名を持たないすべての列を選択したい>私は正しい方法は、フィルタ機能を使用することだと思いBOOL

の配列を返します。戻り所望カラム名

filter(x->x != "column1", colnames(data))#=>は

データフレーム列名はシンボルのデータ型である文字列の配列を返す

map(symbol ,str_array_of_filterd_column_names)#=>同一のシンボルの配列を返します

関連する問題