0
열의 의미를 추적하기 위해 non-standard evaluation을 사용하는 패키지를 만듭니다. 이 패키지는 여러 기능을 수행하는 데이터 프레임을 동일한 열 집합을 통해 전달합니다. 비표준 평가는이 위대한 작품 :수식이 아닌 표준 평가를 사용하여
my_lm <- function(df, xcol, ycol) {
new_lm <- lm(!!xcol, !!ycol, data=df)
new_lm
}
my_lm(mtcars, quo(wt), quo(mpg)
반환 Error in !xcol : invalid argument type
:
my_select <- function(df, xcol, ycol) {
new_df <- dplyr::select(df, !!xcol, !!ycol)
new_df
}
my_select(mtcars, quo(wt), quo(mpg))
그러나, 나는이 공식으로 작동하는 기능을하고 싶습니다. quo()
, enquo()
및 !!
의 모든 종류의 조합을 시도했지만 기본 문제는 어떤 종류의 객체인지 알 수없는 것입니다. lm
.
내가이 문제를 해결 얻을 수 있습니다 , xcol)) ~ unlist (select (df, !! ycol)))')하지만 이것은 꽤 우아하지 않고, 비표준 평가가 데이터 프레임과 함께 작동하는 방식을 이해하지 못하는 문제가 남아 있습니다. –