2017-11-23 4 views
1

varに変数名を渡して、ggplotを含むあらゆる種類の処理を行いたいと思います。変数をggplot2で引用符で囲まずに評価してください

明らかに、UQはデータ操作のために機能しますが、ggplot2では機能しません。だから私の関数 "foo"は動作しますが、 "foo1"は機能しません。

最適なソリューションは何ですか? ggplotため

set.seed(100) 

dat <- tibble(`a` = rbinom(100, 1, 0.2), `b` = rnorm(100)) 


foo <- function(var) 
{ 
    var_q <- enquo(var) 

    dat %>% mutate(`d` = UQ(var_q) + 1) 

} 

foo(`a`) 


foo1 <- function(var) 
{ 
    var_q <- enquo(var) 

    dat %>% mutate(`d` = UQ(var_q) + 1) %>% ggplot(aes(x=UQ(var_q), y=`b`)) + geom_point() 
} 

foo1(`a`) 
+0

私は一種のこのアイデアを得る 'aes_string' –

+0

が必要になりますが、私の「x」は、文字列からのものであり、「Y」は、実際の列であれば、どのように実際にそれを行うだろう名?このようなものは動作しないようです foo1 < - function(var) { var_q < - enquo(var) dat%>%mutate( 'd' = UQ(var_q)+ 1)%>%ggplot aes_string(x = var_q、y = "' b' "))+ geom_point() } –

答えて

0
foo1 <- function(var) { 
    var_q <- enquo(var) 

    dat %>% 
    mutate(`d` = (!!var_q) + 1) %>% 
    ggplot(aes(x=eval(rlang::`!!`(var_q)), y=`b`)) + 
    geom_point() 

} 
+1

答えの説明を入力してください。あなたの投稿は現在、低品質とフラグが立てられています。人々は、問題を解決するだけでなく、学ぶこともここにあります。ありがとうございました。 – Dropout

関連する問題