问题:自动对焦不是累积效应。对于矩阵元素的寻址以及比较它有什么问题......
我的数据
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 <- 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)
}
调用
的结果 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个值。
请帮帮我。我是初学者。我无法理解错误。
答案 0 :(得分:0)
仍然不完全确定你的事情,但我认为这可能是正确的。如果需要,我很乐意解释代码。
$homeUrl = $this->get('router')->generate('site_home');
答案 1 :(得分:0)
我已编辑您的代码以更正其中的错误。这应该现在有效。但提到的解决方案要好得多。
fun<-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<-list()
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
AFP_vec[i]=AFP
}
return(AFP_vec) }
res=fun(VF,VA,UV)