2016-10-25 8 views
0

私はここに来てRに潜入して、ナップザックの問題を解決しようとしているときに問題に遭遇しています。バイナリ変数の代わりに一致する名前を返すR

最適化のために、私はRで動的プログラムを書いたが、ここで成功した項目を返す時点になっているので、項目が選択されているかどうかを示す2進数しか得られない1 =はい)。このように:

選択 は、[1] 1 0 0 1

をしかし、今私は、値の代わりに、これらのバイナリ値の名前を返すように選択機能をしたいと思います。その下に、私の問題がどのように見えるかの例を作りました。

これはデータと関連するデータフレームです。

items <- c("Glasses","gloves","shoes") 
grams <- c(4,2,3) 
value <- c(100,20,50) 


data <- data.frame(items,grams,value) 

ここでは、製品が1(はい)または0(いいえ)で選択されたかどうかを明確にするさまざまな機能を作成しました。上記のように。しかし、私は本当にそれがアイテムの関連する名前を返すようにしたいと思います。作成したデータフレームにリンクすることでこれを回避する方法はありますか? 私は信じている[1]メガネ手袋靴

[1] 1 1 1

選択 選択

(場合には、すべての製品が選択されている)、それが言うだから代わりに私は新しい機能を作らなければならないだろう。しかし、私が言及したように、1(はい)の場合、データフレームの別の列から関連する値を取得するためにデータフレームを参照する良い方法はありますか?

私の質問がより明確になり、誰かが正しい方向に私を導くことができることを本当に願っています。

ベスト、ベルベル

+3

"("と "["の違いについては、音が強要されているか、混乱している可能性があります。しかし、現時点では機能していない機器があります。完全なコードなしで何が起きているのかを知ることはできません。 –

+0

ようこそ。 [this](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)をお読みください。次に、これらのガイドラインに沿って質問を書き直してください。 – jlhoward

+0

これまでのご協力ありがとうございます!私はそれをします。 – Berber

答えて

0

items[as.logical(idx)] 

はあなたの選択した項目の名前を与え、そして

items[!as.logical(idx)] 
う、あなたのバイナリーベクターは

idx <- [1, 0, 1, 0, 1] 

だけ使用しているとしましょう

はあなたにnを与えます選択されていない項目の場合は

関連する問題