为什么在TRUE / FALSE需要错误的地方得到缺少的值?

时间:2018-08-21 01:30:39

标签: r

作为参考,我使用的是R软件包,称为balloonr。

我的代码如下:

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))
        }
    }
}

我想我很困惑,因为它会经过并打印正确的结果,然后将错误抛出在底部。

此外,如果有一种更有效的方式来做我在做的事情,请告诉我!我只是在学习,因此尝试了一些事情。

1 个答案:

答案 0 :(得分:0)

我假设bat_leaders是一个数据帧。如果要操作数据帧,建议您查看dplyr package。比循环好得多。

例如,此代码将选择HR为而不是50 的行(在我看来,这是一种表示大于或小于50的快捷方式)。它还将选择所需的列,并将HR重命名为homerun

library(dplyr)
bat_leaders %>%
  filter(HR != 50) %>%
  select(Name, homerun = HR)