현재이 팀 점수 데이터 세트를 변환하려고합니다.
week AwayTeam AwayScore HomeTeam HomeScore
1 1 A 1 B 1
2 1 C 0 D 1
3 2 A 1 D 0
4 2 B 1 C 0
5 3 C 4 A 0
6 3 D 2 B 2
다음과 같은 매트릭스로 :
A = matrix(c(1,-1,0,0,
0,0,1,-1,
1,0,0,-1,
0,1,-1,0,
-1,0,1,0,
0,-1,0,1),6,4,byrow = TRUE)
행렬 A의 행은 다음과 같이 작동합니다. "1"은 원정 팀, "-1"은 홈 팀, "0"은 각 행의 나머지 공간입니다. 따라서 행렬 A의 첫 번째 행은 A 팀 (어웨이) 대 B 팀 (홈)입니다.
누군가이 데이터를 이와 같은 행렬로 변환하는 데 도움을 줄 수 있다면 대단히 감사하겠습니다.
아래 코드를 시도해 볼 수 있습니다.
v <- LETTERS[1:4]
A <- matrix(0,nrow = nrow(df),ncol = 4)
A[cbind(1:nrow(df),match(df$AwayTeam,v))] <- 1
A[cbind(1:nrow(df),match(df$HomeTeam,v))] <- -1
그런
> A
[,1] [,2] [,3] [,4]
[1,] 1 -1 0 0
[2,] 0 0 1 -1
[3,] 1 0 0 -1
[4,] 0 1 -1 0
[5,] -1 0 1 0
[6,] 0 -1 0 1
데이터
df <- structure(list(week = c(1L, 1L, 2L, 2L, 3L, 3L), AwayTeam = c("A",
"C", "A", "B", "C", "D"), AwayScore = c(1L, 0L, 1L, 1L, 4L, 2L
), HomeTeam = c("B", "D", "D", "C", "A", "B"), HomeScore = c(1L,
1L, 0L, 0L, 0L, 2L)), class = "data.frame", row.names = c("1",
"2", "3", "4", "5", "6"))
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다