【发布时间】:2020-04-05 03:14:54
【问题描述】:
我有一个按每场比赛的顺序记录足球比赛比赛的数据库。我想制作一个 for 循环来检查射门得分(前一排)之前的比赛是否是另一支球队的超时。我尝试在下面使用 [i - 1],但由于出现错误,我不确定这是否有效。
for (i in 1:nrow(example)) {
if (example$field_goal_attempt[i] == 1 & example$timeout[i-1] == 1 & example$timeout_team[i-1] !=
example$posteam[i-1]) {
example$iced[i] == 1
} else {
example$iced[i] == 0
}
}
example <- data.frame(game_id = c(10,10,10,10,10,13,13,13,13,13),
field_goal_attempted = c(0,0,0,1,0,0,0,0,0,0), time_out =
c(0,0,1,0,0,0,0,0,0,0), posteam =
c("PIT","PIT","PIT","PIT","PIT","ATL","ATL","WAS","WAS","WAS"), timeout_team
= c(NA, NA, "TEN",NA,NA,NA,NA,NA,NA,NA))
在新窗口中显示清除输出展开/折叠输出 if (example$field_goal_attempt[i] == 1 & example$timeout[i - 中的错误: 参数长度为零
【问题讨论】:
-
从2开始:
2:nrow(example) -
什么是 example$iced?代码说:如果“if-condition”中的内容为真,则打印“example$iced[i] == 1”是否为真。这就是你想要完成的事情。您只是想评估这种情况?
-
2:nrow(example) 可以正常工作,如果只考虑游戏就可以工作。但对于一个数据帧中的多个游戏,它会返回:“if (example$field_goal_attempt[i] == 1 & example$timeout[i - : 需要 TRUE/FALSE 的缺失值”中的错误”