2015-05-30 198 views
1

我有一些代碼來檢查,看看是否輸入的功能是有效的美國狀態。我有一個國家列的CSV文件,這些是我唯一關心的狀態。所以我用for循環做了這段代碼,以檢查輸入是否與列表中的任何狀態匹配,如果是,則返回值TRUE。麻煩函數返回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的邏輯向量。

+1

我覺得你不需要'range' i..e'範圍(4)# [1] 4 4'。您可以在SEQ(長(需要'爲(我...' – akrun

回答

3

也許這。這是一個常見的錯誤是忘記了前述 「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) 
     } 
    } 
} 
+0

哇...這正是它:!/ 感謝 我想學習Python的同時,有時語法溢出 –

+0

太好了。發生在我身上too.Please接受的解決方案了。 –

+0

你好,請你接受的解決方案? –