169 похожих чатов

Друзья, привет. у меня есть вопрос по reactive conditional filtering

в Shiny.

задачи у меня две:
1) для одного из инпутов фильтровать опции в зависимости от трёх других,
2) для рендерящегося плотли фильтровать дата-пойнты в зависимости от всех инпутов.

и в обоих случаях ошибка одна и та же:
`Предупреждение: Error in : Problem with filter() input ..1. x аргумент нулевой длины` — и или не рендерящийся инпут, или плотли.

я знаю, что такая ошибка возникает, если фильтровать пытаются по NULL (хотя дефолтные значения у меня в каждом инпуте стоят), погуглил и нашёл решение — каждый фильтр обрамил в конструкцию типа
filter(if(!is.null(input$subject_input_res)) subject == input$subject_input_res else TRUE)

так вот после того, как я это сделал, ошибки исчезли, предупреждения тоже, но рендериться перестало вообще всё, кроме первых двух инпутов. при том, что синтаксис их совпадает полностью, например, с синтаксисом следующих двух — но рендерятся только первые.

может, кто-то сталкивался с таким трэшем?

5 ответов

12 просмотров

Может из инпутов читается неправильно? У меня было такое когда индекс забыл проставить

Чет без кода непонятно. У вас в первом инпуте при изменении трех других должны элементы интерфейса меняться? (Грубо говоря в инпуте 1 названия переменных датасета, а в инпуте два - выбор датасета. При выборе новых данных должен обновиться список с переменными)

Alexander- Автор вопроса
Ed P
Чет без кода непонятно. У вас в первом инпуте при ...

смотрите, у меня иерархическая фильтрация: есть задачки, каждая принадлежит к классу, предмету и уровню. а ещё каждая принадлежит к модулю. модулей дохрена (больше 10к), но их количество можно сократить, если задать класс, предмет и уровень. поэтому я пытаюсь отфильтровать список модулей (а это один из инпутов) по классу, предмету и уровню (предыдущие три инпута)

Alexander
смотрите, у меня иерархическая фильтрация: есть за...

Понятно. В любом случае сравнивать лучше через %in% вместо ==, как тут уже написали. Еще вы добавили условие !is.null() мне кажется, это лучше вынести в реактивные условия. Т.е. чтобы ваш фильтр отрабатывался когда меняется один из инпутов. Либо делать validate для проверки корректности фильтров

Alexander
смотрите, у меня иерархическая фильтрация: есть за...

Я б сделал reprex, чтобы было проще помогать

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Карта сайта