2017-12-14 9 views
4

을 적용 그렇지 않으면 내가 찾는 것, ON 입니다 대응하는 다음의 동일한 값이 일 때까지 일 때까지. 같을 것이다벡터에서 이전과 동일한 값을 찾아 <code>mystatus</code> 주어진 내가 <code>myvector1</code>에서 즉시 이전 같은 값의 <code>mycategory</code> 값을 알고 싶습니다 <code>myvector1</code>의 각 값의 경우, 특정 조건을

지침 : "myvector"의 지정된 위치에 대한

  1. 는 나에게 그의 가치를 제공합니다.
  2. "myvector"에서 이전의 같은 값의 위치를 ​​찾습니다.
  3. asssociated 상태를 확인하십시오. ON 일 경우 "mycategory"와 관련 있습니다. OFF 인 경우 2 번 지점을 반복하십시오.
  4. "mycategory"를 새로운 벡터 "mysolution"에 할당하십시오.

데이터 세트가 주어진 mydf 내가 찾고있는 것은 DesiredSolution (수동으로 채워짐)입니다.

mydf <- structure(list(myvector1 = structure(c(1L, 2L, 3L, 4L, 5L, 1L, 
2L, 4L, 5L, 2L, 3L, 4L, 5L, 2L, 3L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 
2L, 4L, 5L, 1L, 1L, 2L, 3L, 4L, 5L, 3L), .Label = c("0", "1", 
"2", "3", "4"), class = "factor"), mystatus = structure(c(2L, 
1L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 
1L, 2L, 2L, 1L, 1L, 2L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 2L), .Label = c("OFF", 
"ON"), class = "factor"), mycategory = structure(c(2L, 2L, 3L, 
1L, 1L, 1L, 1L, 3L, 3L, 1L, 2L, 2L, 3L, 1L, 1L, 1L, 1L, 1L, 2L, 
2L, 3L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 3L, 3L), .Label = c("bye", 
"hi", "stay"), class = "factor"), DesiredSolution = structure(c(3L, 
3L, 3L, 3L, 3L, 2L, 3L, 1L, 3L, 1L, 4L, 4L, 4L, 1L, 2L, 4L, 1L, 
1L, 1L, 2L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 2L, 1L, 2L), .Label = c("bye", 
"hi", "NA", "stay"), class = "factor")), .Names = c("myvector1", 
"mystatus", "mycategory", "DesiredSolution"), row.names = c(NA, 
-32L), class = "data.frame") 

답변