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 < - function(df、t、f){ df%>% mutate _(ドット=リスト(.w。= f))%>% top_n(t、wt = .w。)%> % select( - .w。) } 'もうまくいくようです。追加の評価列を作成せずにメソッドを使用する明白な方法がないことはあまりにも悪い – Drey