2016-10-20 2 views
0

У меня есть этот сюжет, который имеет реактивный вход в жанр. Поскольку мой набор данных изменился с последнего раза (теперь я использую ggplot2movies), фильтрация больше не работает. Мне было интересно, как это исправить, поскольку я понятия не имею.R Реактивная фильтрация данных

я что-то вдоль линий этого мышления, но он не работает

ggimdb <- data.frame(ggplot2movies::movies) 
    imdbmovies <- reactive({ 
    genre <- input$genre 
    k <- ggimdb %>% 
     filter(
     genre == 1 
    ) 
    }) 

Это часть dataframe из фильмов enter image description here

input$genre явно представляет собой блок выбора, который может выберите один жанр. Любая помощь приветствуется!

+0

Как насчет 'k <- ggimdb [, colnames (ggimdb)% in% genre]'? –

+0

@ RomanLuštrik Хм, я пробовал это, но, похоже, для меня это ошибка. «Не применимый метод для« compute_density », применяемый к объекту класса« c »(« integer »,« numeric »)», «не уверен, что вызывает это конкретно – dnsko

+1

Что относительно 'ggimdb [ggimdb [, colnames (ggimdb)% in% genre] == 1,]'? –

ответ

0

Вопрос заключается в том, что dplyr ищет столбец с именем genre, а не для столбца, имя которого хранится в переменной genre. Вместо этого вам нужно использовать filter_, которая позволяет динамически выбирать столбцы, построив аргументы, которые вы хотите включить:

genre <- "Animation" 

data.frame(ggplot2movies::movies) %>% 
    filter_(paste(genre, "== 1")) 

работы.