1

私はこのdata.frameを持っています:

    Campanas1     variable     sessions
1   Adwords       sumResults    69
2   Campa�as     sumResults     2
3   Directo       sumResults    10947
4   Email         sumResults    413
5   Referencias   sumResults    12991
6   SEO           sumResults    37693
7   Social Media  sumResults    5993
8   Others        sumResults    2

このコードで棒グラフを作成しました。

Sesiones_Campanas1 %>% ggvis(~Campanas1, ~sessions, fill := "red") %>% layer_bars()

質問: (Campanas1 から) すべてのソースまたはすべてのソースにセレクターを配置するにはどうすればよいですか?

私の試み:

Sesiones_Campanas1 %>% ggvis(~Campanas1, ~sessions, fill := "red") %>%   layer_bars(input_select(label = "Fuente"),
                                                                              choices = c("Email", 
                                                                                "Directo", "Adwords",
                                                                                "Campanas1", "Referencias", "SEO",
                                                                                "Social Media"))

しかし、私はこのエラーが発生します:

Error: length(x) not equal to 1

これは私が欲しいものですが、対話性があります

4

1 に答える 1

1

かなりの研究の後、私はそれを作ったと思います。難しかったのは、ドロップダウン メニューにすべての行の部分を含めることでした。それで、ここに行きます:

まず、それを行うには 2 つのライブラリが必要です:dplyrstringi:

library(dplyr)
library(stringi)

selector <- c('Adwords', 'Campanas', 'Directo', 'Email',  'Others', 'Referencias', 'SEO', 'Social_Media', 'All' = 'Adwords_Campanas_Directo_Email_Others_Referencias_SEO_Social_Media' ) 
#the selector is a vector to include all your choices

そして、必要なことを実行する実際のコード:

Sesiones_Campanas1  %>%  #the table
  ggvis(~Campanas1, ~sessions, fill := "red") %>% #the ggvis object
  filter(stri_detect_fixed(eval(input_select(choices=selector, label='Fuente' )) , Campanas1) ) %>%   #the difficult part. You need to use filter and stri_detect_fixed with the input select to get exactly what you need.
  layer_bars() #plot bars

インタラクティブ グラフをアップロードできない (と思う) ので、静的allグラフをアップロードします (ただし、ドロップダウン ボックスとすべての選択肢が表示されます)。

PS x 軸のラベルが正しく表示されない場合は、グラフのサイズを大きくする必要があるためです (Rstudio とブラウザーの両方で機能します)。

PS2filter行がどのように機能するかについてのいくつかの単語:結果を文字列evalに評価input_selectして、関数と照合できるようにする必要がありstri_detect_fixedます。filter次に、使用する行を決定します。

以上です!

ここに画像の説明を入力

アップデート

最初に「すべての」ソースを選択するには、次のselectedように引数を指定する必要があります。

Sesiones_Campanas1  %>% 
  ggvis(~Campanas1, ~sessions, fill := "red") %>%
  filter(stri_detect_fixed(eval(input_select(choices=selector, label='Fuente', selected='Adwords_Campanas_Directo_Email_Others_Referencias_SEO_Social_Media' )) , Campanas1) ) %>%   
  layer_bars() 

お役に立てれば!!

于 2014-12-29T11:25:23.350 に答える