2017-10-07 2 views
1

난 그냥 그 문자열과 데이터 테이블의 열에서 각 값을 대체이 기능을 서면으로 작성했습니다 : 나는dplyr을 사용하는 사용자 정의 함수에 열 이름을 전달하는 방법은 무엇입니까?

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

이제 :

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

는하지만 그것을 실행하려고 할 때마다 내가 오류 왜 작동하지 않는지에 대한 많은 연구를 해봤지만 알아낼 수는 없습니다. 표준 평가와 lazyeval을 사용하여 몇 가지 자료를 읽었지만 시도하지 않은 것은 효과가있는 것 같습니다. 어떤 도움이 필요합니까?

감사합니다.

+0

당신이에 기능을 실행있는 데이터를 제공 할 수 있습니다 :이 하루의 끝에 솔루션을했다? – useR

+0

dplyr로 프로그래밍을 배우려면 https://cran.r-project.org/web/packages/dplyr/vignettes/programming.html을 참조하십시오. – www

답변

1

감사합니다. @ycw, 좋은 읽을 거리였습니다. 이 기사를 통해 작업 한 후 지금 작업하게되었습니다.

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

And this is ycw's comment.

+0

당신은 당신의 자신의 대답을 받아 들일 수 있습니다 :) – useR

관련 문제