2016-12-08 60 views
0

我想編寫一個稱爲state的狀態縮寫作爲其唯一輸入變量的函數。split()函數不能嵌入另一個函數

應該然後..

  • 讀取read.csv()
  • 一定CSV文件中的功能與split()
  • 返回與狀態縮寫分割數據幀向上通過的狀態的縮寫僅數據state

我知道這是一種過濾功能,但我明確地想要用split功能。

這裏是我的代碼:

best <- function(state) { 

## Read the data 
data <- read.csv("outcome-of-care-measures.csv", colClasses = "character") 

## Split data up by the 'State' column 
data_split <- split(data, data$State) 

## Return data with state in 'State' column 
data_split$state 

} 

## Executing the function 
best("NY") ## returns NULL 

當我執行這些行不使用的功能,這是工作。所以我認爲將輸入變量state作爲參數data_split$state存在問題。

感謝您的幫助。

最良好的祝願, 馬庫斯

+0

嘗試返回'data_split [狀態]'? – mt1022

+0

@ mt1022我的想法確切:-) –

+0

謝謝你們,它效果不錯:) –

回答

1

你可以嘗試使用:

data_split[[state]] 

全碼:

best <- function(state) { 
    data <- read.csv("outcome-of-care-measures.csv", colClasses = "character") 
    # split data on the _column_ called 'State' 
    data_split <- split(data, data$State) 
    # return the entry in the list whose _name_ is contained in 'state' 
    data_split[[state]] 
} 
+0

謝謝。它的工作:)你有解釋這種行爲?那麼爲什麼我可以調用'state $ NY'而不是'a < - NY;狀態$了'? –

+0

@ashbounty因爲當你說'state $ a'時,你告訴R訪問列表/數據框中名爲'a'的_column_。使用雙括號子集可以指定一個字符串名稱,並且這可以起作用。 –