2017-09-15 1 views
-2
여기

장난감의 예는 다음과 같습니다함수에 매개 변수로 열 이름을 전달하는 방법은 무엇입니까?

df <- data.frame(user=c('a','b'), rating=c(1,2), age=c(17,33)) 

rating <- function(df, var){x <- df %>% summarise(sum(var))} 

rating(df,age) 

나는이 기능을 실행하면, 나는 다음과 같은 오류 얻을 :

Error in summarise_impl(.data, dots) : object 'age' not found

어떻게 함수에 매개 변수로 열 이름을 전달하기를?

+2

본 적이 있습니까? https://stackoverflow.com/a/26724721/322912 –

+0

다소 오래되었습니다. 나는 갑작스러운 제안을 시도 할 것입니다. – ronencozen

답변

4
library(tidyverse) 

df <- data.frame(user=c('a','b'), 
       rating=c(1,2), 
       age=c(17,33)) 

rating <- function(df, var){ 
    var <- enquo(var) 
    df %>% summarise(sum(!!var)) 
    } 

x <- rating(df,age) 
+0

enquo (var) 오류 : "enquo"기능을 찾을 수 없습니다 – ronencozen

+1

dplyr을 다시 설치하십시오. 이 코드는 최신 버전의 기능을 사용합니다. https://blog.rstudio.com/2017/06/13/dplyr-0-7-0/ – udden2903

+0

감사합니다. 작동합니다. – ronencozen

관련 문제