私は、dplyr :: mutate()の関数に渡された変数の名前を抽出しようとして失敗しています。以下は私がのmutate内の文字列「MPG」を返す関数を作成する簡単な例です:R dplyr - mutate/summarizeの文字列として変数名を取得
# mtcars dataset with grouping variable
dataset = mtcars
dataset$group = c(1, 2, 3, 4)
# function to call inside mutate()
f = function(col, data){
str_col = deparse(lazyeval::expr_find(col))
str_col
}
# this does not work: returns the content of mpg
# instead of the variable name as a string
dataset %>%
group_by(group) %>%
mutate(f = f(mpg, dataset)
) %>%
select(group, f)
私はlazyeval使用:: expr_find()、subsituteのみ限り一つの層を「上がる」ので、私はその文書を理解した。関数wrap()内でf()を呼び出すと動作しますが、group_by()%>%mutate()の中に入れると、mpgの代わりにmpgの内容を返します。
いくつかの質問が関連していますが、それらのどれも私の問題を解決するものではありません。大歓迎
すべてのヘルプ:)
f_updatedは、単純に1の値を生成するために起こっていますグループ合計を合計で除算しようとしているようですね。 % dplyr :: select(mpg、group)%>% mutate(tot.sum = sum(mpg))%>% group_by(group)%>% 要約(結果 –
私のテキストがちょっと誤解を招いていたことを心配しています。sum(mpg)/ sum(。$ mpg)はすでにトリックをしていますが、それはちょっと小さかった私は同じ出力を取得するかどうかを確認する例です。私の問題は、mutate()の関数に渡すと文字列として変数名を取得したいのですが、それはまだ動作していません:(でもthxですが!) – Christoph
本当の質問が何であるか分かりません –