1
我想以編程方式設置dplyr::top_n
函數的列名稱。以編程方式在dplyr :: top_n中設置列名稱
getSubset <- function(df, t, f) {
df %>%
top_n(t, wt = eval(as.name(f), envir = df))
}
data.frame(x = 1:20, y = 20:1) %>%
getSubset(10, "x")
它告訴我Error: object 'f' not found
。我試圖玩lazyeval
包,但不知何故,我一直誤解這個概念。有人能把我推向正確的方向嗎?謝謝!
感謝您的建議。這個'getSubset < - 函數(df,t,f)mutate _(。dots = list(.w。= f))%>% top_n(t,wt = .w。)%> % select( - .w。) }'似乎也適用。太糟糕了,沒有明顯的方法來使用該方法而無需創建額外的評估列 – Drey