簡體   English   中英

如何將列名傳遞給使用 dplyr 的自定義函數?

[英]How to pass a column name into a custom function, which uses dplyr?

我已經編寫了這個函數,它只是用它的子字符串替換了數據表列中的每個值:

substrColName <- function(df, colName, start) {
    df %>% mutate(colName = substr(colName, start=start, stop=nchar(colName)))
}

但是每次我嘗試運行它時都會出現錯誤:

Error in as.character(x) : cannot coerce type 'closure' to vector of type 'character'

現在我已經做了很多關於為什么它不起作用的研究,但我無法弄清楚。 我已經閱讀了一些帶有標准評估和lazyeval 的內容,但我嘗試的任何內容似乎都不起作用。 有什么幫助嗎?

謝謝

謝謝,@ycw,讀得不錯。 在完成這篇文章后,它現在可以工作了。 這是一天結束時的解決方案:

substrColName <- function(df, colName, start) {
    colNameQuo <- enquo(colName)
    df %>% mutate(!!quo_name(colNameQuo) := substr(!!colNameQuo, start=start,stop=nchar(!!colNameQuo)))
}

這是 ycw 的評論。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM