【发布时间】:2021-11-30 23:59:51
【问题描述】:
如何创建一个函数 points (),它以矩阵 goals 作为输入,有 2 列,其中行数取决于用户的输入?第一栏是主场进球,第二栏是客场进球。我怎样才能得到目标矩阵,该函数需要第二个输入 win_points,该输入指定了球队获得的积分数?
例如,赢3分,平分1分,输0分。因此,如果球队以 1-0 获胜,则 win_point 矩阵应显示为 3 0,如果球队以 4-4 获胜,则 win_point 矩阵应显示为 1 1 以分为单位。
我也这样尝试过,但我认为使用 function 效果会更好。 我现在在我的代码中使用了一个 10 行和 2 列的矩阵,行应该是灵活的(你可以放置每个数量的行)并且列应该是 2 个固定的,因为一场比赛只有 2 个团队。
我在下面的代码中做错了什么?
set.seed(1)
goals1 <- matrix(sample(0:5, size = 5*2, replace = TRUE), nrow=5, ncol=2)
points1 <- matrix(0, nrow(goals1),ncol(goals1))
for(i in 1:nrow(goals1)) {
for(j in 1:ncol(goals1)) {
if goals1[goals1[i]>goals1[j]] {
points1[i] <- 3
points1[j] <- 0
} else if goals1[goals1[i]<goals1[j]] {
points1[i] <- 0
points1[j] <- 3
} else if goals1[goals1[i]==goals1[j]] {
points1[i] <- 1
points1[j] <- 1
}
}
}
首先,感谢您提供正确代码的答案!但是为什么上面的代码不起作用?我不明白我在代码中做错了什么。谁能解释一下!
【问题讨论】:
标签: r function loops if-statement matrix