【问题标题】:Trouble getting function to return TRUE无法让函数返回 TRUE
【发布时间】:2015-05-30 19:12:22
【问题描述】:

我有一些代码可以检查函数的输入是否是有效的美国州。我有一个带有 State 列的 CSV 文件,这些是我关心的唯一状态。所以我用 for 循环编写了这段代码,以检查输入是否与该列表中的任何状态匹配,如果匹配,则返回值 TRUE。

valid_state <- function(state) {
    CSV <- read.csv("outcome-of-care-measures.csv")
    for (i in range(length(unique(CSV$State)))) {
        if (state == unique(CSV$State)[i]) {
            return (TRUE)
        }
    }
}

它返回的只是一个 NULL。我知道仅通过自己查看 CSV 文件就进入了有效状态。我认为当我尝试引入问题时问题就开始了,但我不知道为什么。基本上,输入只能匹配列表中的一种状态,如果匹配,它应该只返回一个带有 TRUE 的逻辑向量。

【问题讨论】:

  • 我认为你不需要rangerange(4)# [1] 4 4。你可能需要for(i in seq(length(...

标签: r function for-loop logical-operators scoping


【解决方案1】:

也许是这样。忘记前面的“1:”是一个常见的错误:

valid_state <- function(state) {
    CSV <- read.csv("outcome-of-care-measures.csv")
    for (i in 1:length(unique(CSV$State))) {
        if (state == unique(CSV$State)[i]) {
            return (TRUE)
        }
    }
}

【讨论】:

  • 哇...就是这样:/谢谢!我正在尝试同时学习 Python,但有时语法会溢出!
  • 太棒了。我也遇到过。请也接受解决方案?。
  • 大声抱歉,stackoverflow 的新手,我没有收到自动通知。我刚得到你的解决方案就离开了。不过我现在已经接受了!
猜你喜欢
  • 2017-08-24
  • 2022-11-04
  • 1970-01-01
  • 1970-01-01
  • 2010-10-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多