2017-02-07 3 views
2

Я использую renderDataTable функцию в первый раз, и я передаю реактивную переменную в нее, как это:R Shiny Ошибка: «Объект типа Closer не Subsettable»

x<-reactive ({x[1:3]<-input$num 
    }) 
    output$table <- renderDataTable(x()) 

Когда я бегу приложение, я сказал, что «объект типа« закрытие »не является подмножеством».

Что я знаю

Я понимаю, что ошибка, скорее всего, генерируется потому, что я передаю функцию, а не кадр данных, называемый х.

То, что я не знаю

Как я могу решить эту проблему? Мне очень нужно передать x() через renderDataTable. Я попытался установить его равным другой переменной и передать его таким образом, но это не сработало.

Не могли бы вы дать мне несколько советов относительно того, как я могу использовать renderDataTable в этой ситуации?

+0

Я не думаю, что у вас могут быть такие общие имена, как 'table' для' output $ table', попробуйте другое имя. –

+0

Что такое 'x [1: 3] <- ввод $ num'? – HubertL

ответ

2

Я думаю, что это должно сработать. Дайте мне знать иначе.

myx<-reactive ({ 
    x[1:3]<-input$num 
    x 
}) 
output$table <- renderDataTable(data.frame(x=myx())) 
+0

Блестящий! Благодарю. Как вы думаете, почему мой код не работает, но ваш? – magicmykh

+1

Ошибка показывает, что ваш 'x()' запутан. Он не должен жаловаться, если ваша реактивная функция получает нужный объект. Поэтому я специально возвращаю объект 'x' в реактивную функцию. Кроме того, я не уверен, имеет ли значение, когда вы используете 'x' как одно и то же имя с вашим вектором с именем' x'. Поэтому я использую 'myx' вместо' x'. Надеюсь это поможет. – gsun

 Смежные вопросы

  • Нет связанных вопросов^_^