我正在嘗試撰寫一個函式,該函式首先過濾資料集以在我運行該函式時只有一個狀態。我發現 [this answer][1] here 這對我不起作用。
此處的示例資料集:
state <- sample(state.abb, size = 100, replace = TRUE)
registered <- sample(c("registered", "unregistered"), size = 100, replace = TRUE)
df <- data.frame(state, registered)
我根據上面的例子寫的函式:
create_xtab_tables <- function(state_name){
require(dplyr)
df2 <-
df %>%
filter(state == state_name)
return(df2)
}
當我運行并嘗試輸入資料表中包含的狀態時
df_ak <- create_xtab_tables(AK)
我收到以下錯誤:
錯誤filter()
:!計算時出現問題..1 = state == state_name
。由錯誤引起mask$eval_all_filter()
:!找不到物件“AK”回溯:
- 全域 create_xtab_tables(AK)
- dplyr:::filter.data.frame(., state == state_name)
- dplyr:::filter_rows(.data, ..., caller_env = caller_env())
- dplyr:::filter_eval(點,掩碼 = 掩碼,error_call = error_call)
- mask$eval_all_filter(dots, env_filter) [1]:字串作為 R 中的函式引數
uj5u.com熱心網友回復:
在這里你傳遞一個字串。因此使用引號!
df_ak <- create_xtab_tables("AK")
state registered
1 AK registered
2 AK registered
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/506832.html
上一篇:如何在函式內更改全域變數的值