r에 forloop을 사용하지 않고 조건에 대한 데이터 프레임의 각 행을 테스트하고 반환 값을 조건에 해당하는 별도의 행렬 요소로 사용하려고합니다. .ifelse 문에서 조건부 행렬 요소를 반환하는 중
ax <- matrix(data=c("x","UP","DN","x"),nrow=2,dimnames=list(c("site1","site2"),c("site1","site2")))
data <- data.frame(Location1=c("site1","site1","site2","site1","site2","site2","site2","site1"),Location2=c("site1","site2","site1","site2","site2","site2","site1","site1"))
이 매트릭스 (AX)과 데이터 프레임 결과 (데이터) :
지금 LOCATION1 위치 2 다르면> ax
site1 site2
site1 "x" "DN"
site2 "UP" "x"
> data
Location1 Location2
1 site1 site1
2 site1 site2
3 site2 site1
4 site1 site2
5 site2 site2
6 site2 site2
7 site2 site1
8 site1 site1
, 내가 얻을하려는 다음 예는 그 움직임의 방향을 말해주는 대응하는 행렬 요소.
data$movement <-ifelse(data$Location1!=data$Location2,ax[as.character(data$Location1),as.character(data$Location2)],"x")
그러나 이것은이 출력 결과 : 내가 전에 이런 문 ifelse 사용했지만, 별도의 매트릭스를 조회 할 때 올바른 출력이 정말 날을 벗어난되어지고 .. 내 코드는
data
Location1 Location2 movement
1 site1 site1 x
2 site1 site2 x
3 site2 site1 UP
4 site1 site2 x
5 site2 site2 x
6 site2 site2 x
7 site2 site1 UP
8 site1 site1 x
그것은 쉬운 문제가 될 것 같이 보인다,하지만 난 그것을 알아낼 수없는 것, 어떤 도움을 크게