作为参考,我使用的是一个名为baseballr的R包。
我的代码如下:
Homeruns <- function(homerun) {
for (col in 1:ncol(bat_leaders)) {
Name = bat_leaders[col, "Name"]
homerun = bat_leaders[col, "HR"]
if (homerun > 50) {
print(paste(Name, homerun))
}
else if (homerun < 50) {
print(paste(Name, homerun))
}
}
}
我想我很困惑,因为它通过并打印了正确的结果,但随后将该错误抛在底部。
另外,如果有更有效的方法来做我正在做的事情,请告诉我!我只是在学习,结果是尝试一些事情。
我假设bat_leaders
是一个数据框。如果你想操作数据框,我鼓励你看看dplyr包。比循环好得多。
例如,此代码将选择 HR 不是 50 的行(在我看来,这似乎是说大于或小于50的更快方法(。它还将选择所需的列并将HR
重命名为homerun
:
library(dplyr)
bat_leaders %>%
filter(HR != 50) %>%
select(Name, homerun = HR)