값이 사람은 내 머리를 깨는 . 승자는 행렬에있는 행의 패자와 패자입니다. 나는 그들의 패자는 다른 전투 승리 횟수 (각 우승자)를 계산해야합니다요소가 제로가 아닌 경우, 일치하는 행을 추가가
| A | B | C | D
A| 0 | 0 | 1 | 1
B| 1 | 0 | 1 | 0
C| 0 | 0 | 0 | 1
D| 0 | 1 | 1 | 0
그래서 내가 변수 L를 작성하고자하는 각 개인을 위해, 그 경우/그녀가 승리하도록 (패자는 승리) 다른 개인, 그들의 행 합계가 합계에 추가됩니다. 이 예에서, 새로운 변수는 다음과 같이 보일 것이다 :
| A | B | C | D | L
A| 0 | 0 | 1 | 1 | 3 (1 win from C, 2 from D)
B| 1 | 0 | 1 | 0 | 3 (2 wins from A, 1 from C)
C| 0 | 0 | 0 | 1 | 2 (2 wins from D)
D| 0 | 1 | 1 | 0 | 3 (2 wins from B, 1 from D)
은 내가 에 대한 루프를 시도하고 사용하여 각 개인에 대한 rowSums을 얻는 것을 처리했다 :
내가 아는l=c()
for (i in 1:nrow(df)){
l[i]=rowSums(df[i,])
}
loserwinners=data.frame(l,row.names=rownames(df))
, 골드 스타를 , whoopee. 그러나 값이 0이 아니면 행렬 내에서 호출 할 논리적 명령문을 알지 못합니다. 열 이름을 행 이름과 일치시키고 해당 행의 값을 합계에 추가하십시오. 이 작업을 수행하는 방법에 대한 단서가 있으면 감사하겠습니다. 구문이 잘못된 경우 사과드립니다.
앤디, 정말 고마워요 완벽하게, 그리고 정말 멋진 코드 조각입니다. 나는 화가났다. 내가 며칠 동안 일해 왔던 일에 당신이 너무 적은 시간을 보냈다! 좋은 분! –
도움이 되니 기쁩니다! * 함수 패밀리를 이해하는 것을 배우는 것이 R을보다 효율적으로 사용하는 데있어서 가장 큰 도약을 가져다 준 것 중 하나였습니다. NB :이 예제의 경우 행렬이 정사각형이고 행과 열이 항상 같은 순서로 있으면 names() 함수를 생략 할 수 있습니다. (그 점에 관해서는 이제 더 많은 점을 생각하면 which() 함수 게다가). 그러나 이름을 사용하는 것이 더 안전하다고 생각합니다. – andyteucher