문제 : AF가 누적되지 않습니다. 그리고 행렬 요소와 비교하여 해결 문제는 무엇인가 ...이중 for 루프에서 작동하지 않습니다. R
내 데이터
내 기능 를 호출f <- function(VF, VA, UV) {
vote_for <- VF
vote_against <- VA
user_vote <- UV
am_law <- ncol(vote_for)
am_fr <- nrow(vote_for)
AF <- 0
AFP_vec <- c(0)
for (i in 1:am_fr) {
AF <- 0
for (j in 1:am_law) {
if (user_vote[j] == 1) {
AF <- AF + vote_for[i][j]
} else {
AF <- AF + vote_against[i][j]
}
}
AFP <- AF/am_law
append(AFP_vec, AFP)
}
return(AFP_vec)
}
결과를 호출하려고
VF <- matrix(c(40, 70, 80, 35,
90, 66, 15, 46,
50, 52, 60, 80,
30, 73, 30, 40,
80, 70, 76, 69), nrow = 5, byrow = TRUE)
VA <- matrix(c(40, 25, 67, 43,
5, 26, 80, 43,
45, 35, 30, 10,
63, 13, 60, 45,
10, 19, 11, 22), nrow = 5, byrow = TRUE)
UV <- c(1, 0, 0, 1)
f(VF, VA, UV)
은
[1] 40 [1] NA [1] NA [1] NA [1] 90 [1] NA [1] NA [1] NA [1] 50
[1] NA [1] NA [1] NA [1] 30 [1] NA [1] NA [1] NA [1] 80 [1] NA [1] NA [1] NA [1] 0
하지만 내 AFP_vec에는 5 개의 값만 있으면 좋겠다.
제발 도와주세요. 나는 초급이다. 그리고 나는 틀린 것을 이해할 수 없다.
안녕하세요. 출력이 어떻게 생겼는지 예상 할 수 있습니까? – CroGo
UV의 값에 따라, 나는 행렬 vote_for 또는 vote_against에서 요소를 선택하여 누적합니다. (나는 AF가 내 누적 변수라고 기대한다). 그런 다음 한 세트의 요소에서 평균을 계산합니다 (AFP_vec에 "for (i in 1 : am_fr)"- 루프) - AFP와 AFP_vec를 한 단계 씩 전달합니다. 내 데이터에 따르면 AFP_vec는 5 개의 값을 제공해야합니다. – Chet
현재 이해해야 할 점은 VF 및 VA와 같은 행의 길이와 동일한 길이의 벡터이어야합니다. 여기서 요소의 값은 행의 평균입니다. VF & VA에서 UV = 1이면 VF를 취하고 UV = 0이면 VA를 취합니다. – CroGo