2016-10-25 1 views
0

저는 여기에 새로 왔으며 R로 들어가서 배낭 문제를 풀려고 할 때 문제가 발생했습니다.이진 변수 대신 일치하는 이름이 반환됩니다.

최적화를 위해 필자는 R에서 동적 프로그램을 작성했지만 이제는 내가 성공한 항목을 반환 할 시점에 항목이 선택되었는지 여부를 나타내는 이진수 만 얻습니다. 1 = 예). 이처럼 :

는 [1]

0 0 1

(1) 그러나, 지금은 대신이 이진 값의 값의 이름을 반환 할 수있는 선택 기능을 원하는 선택합니다. 아래에 나는 내 문제가 어떻게 생겼는지에 대한 예를 만들었습니다.

이것은 데이터 및 관련 데이터 프레임입니다.

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


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

이제, 마지막 하나는 제품 1 (YES) 또는 0 (NO)에 의해 선택되었는지의 여부를 명확하게하여, 다양한 기능을 만들었다. 위처럼. 그러나 항목의 관련 이름을 반환하는 것이 좋습니다. 생성 된 데이터 프레임으로 다시 링크하여이 문제를 해결할 수있는 방법이 있습니까? 이

내가 믿는 대신

선택 [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)] 

선택한 항목에 대한 당신의 이름을 줄 것이다, 이진 벡터

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

그냥 사용 말할 수 있습니다, 그리고

items[!as.logical(idx)] 

이 (가) 당신에게 줄 것입니다. 선택되지 않은 항목의 경우

관련 문제