2017-10-11 16 views
1

これはNSEを扱う際の問題と思われます。しかし、なぜこれらの2つのアプローチが機能しないのか、どうすればそれらを動作させることができますか?purrrとggplot関数がプロットを表示していません(NSEの問題)

temp1 <- function(x){ 
    iris %>% 
    ggplot(aes(Sepal.Length, Sepal.Width)) + 
    geom_point() + 
    facet_wrap(as.formula(paste("~", x))) 
} 
walk('Species', temp1) 


temp2 <- function(x){ 
    x <- as.name(x) 
    iris %>% 
    ggplot(aes(Sepal.Length, Sepal.Width)) + 
    geom_point() + 
    facet_wrap(~ x) 
} 
walk('Species', temp2) 

答えて

0

私には、NSEの問題ではないようです。あなたが?walkを読めば、それは(私が追加強調)言う:

徒歩()はその副作用のために.fの呼び出し、は、元の入力を返し

試してみてください。

t <- walk('Species', temp1) 
t 
#[1] "Species" 

ggplotに明示的なプリントを追加すると、あなたが望むものを得ることができると思います。例えば。 temp1を次のように変更してください。

temp1 <- function(x){ 
    print(iris %>% 
     ggplot(aes(Sepal.Length, Sepal.Width)) + 
     geom_point() + 
     facet_wrap(as.formula(paste("~", x)))) 
} 
+0

これは意味があります。あなたはそれを(代替的に)配管で行うことがなぜ機能しないのかについて、あなたはコメントできますか?これは '...%>%print()'です。 – student

+2

@student単純な配管を使用すると、 'facet_wrap()'オブジェクトを 'print'に渡すことになります。パイプにしたい場合は、 '()'ですべてをグループ化し、 'print'に渡すことができます。 'のようなもの(アイリス%>%...)%>%print()' –

関連する問題