2012-02-28 2 views
3

私はいくつかのGA駆動検索を完了するためにRを使用しています。 c(0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0):私のGAスクリプトから返さ数値ベクトルで識別される列に基づいてデータフレームを再構築するにはどうすればよいですか?

が得られた染色体であり、例は、長さの二進数字として40

を返さ。

私はまた、40列の対応するデータフレームを持っています。

数値ベクトルのデータを使用して、データフレームを効率的に構築(または再構築)して、数値ベクトルの1で表される列のみを含むようにするにはどうすればよいですか?

答えて

1

サンプルdata.frameを構築し、Xにあなたのサンプルベクトルを割り当てる:

df <- as.data.frame(matrix(sample(1:100, 400, replace=T), ncol=40)) 
x <- c(0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0) 

私はサブセットすることができます

df[ ,x==1] 

か:

df[, as.logical(x)] 
+0

を完璧な答えは - あなたに感謝します。私はfor-loopsなどで右の混乱に陥っていた(VBAの年もあるかもしれない...) – tfb

+0

@tfbはうれしい。 [The R Inferno](http://www.burns-stat.com/pages/Tutor/R_inferno.pdf)を見てみるとよいでしょう。これらの落とし穴のいくつかを避けるための素晴らしい学習ツールがあります。 – Justin

関連する問題