問題タブ [dt]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ajax - クリックされたセルはローカルで機能しますが、リモートの光沢のあるサーバーでは機能しません --DT
任意のセルの DT でセルのクリックをリッスンし、それに応じてプロットを更新するアプリケーションがあります。ローカルで app() を実行すると、プログラムは完全に機能します。ただし、光沢のあるサーバーにアプリをデプロイすると、クリックしてもアクションがトリガーされなくなります。この不一致は、以下のコードで示したように、単純な更新ボタンなどの他のアクション リスナーには存在しません。更新ボタンの条件ではリモートとローカルの差異は存在しませんが、トリガー条件input$refreshButton!=0
を使用すると差異がある ことがわかります。length(input$table_cell_clicked)>0
このエラーについていくつか調査しましたが、これまでのところわかっていることは次のとおりです。
1)"Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience."
アプリをリモートでデプロイすると、コンソールに警告が表示されます。これは、javascript.min.js および jquery.min.js という光沢のあるサーバー内のファイルの設定と関係があると言われています。これは、サーバーc.async="false"
上のすべてのファイルを検索したことを示していますasync="false"
。に設定を変更しましたsync="true"
。ただし、正確な string を含むファイルは見つかりませんでしたc.async="true"
。ブラウザ コンソールでこの文字列を含むファイルを確認できます。これにより、server::port/
.
2) これは、いくつかの光沢のある入力の機能に関連するもので修正できる可能selectize
性があり、コードが非同期的に実行される可能性があります (?)。いくつかの異なることを試しましたが、問題を解決するものはありませんでした。
3) Shiny には、一般的にデバッグが難しいという一般的に知られている煩わしさがあります。私の場合、ローカルで runApp() を使用するときと同じように、server.R 関数の出力を確認できれば非常に役立ちます。browser
への呼び出しを使用することをoptions(shiny.trace = T)
お勧めしますが、以下のコードにそれらを追加すると、コンソール出力に何も表示されません。リモートサーバー上のファイルに出力を保存するために使用sink
してみましたが、エラーは発生しませんでしたが、指定された場所にファイルがありません。少なくともこのファイルの出力、またはサーバーとクライアント間の要求/応答メッセージを確認できれば、これをデバッグするのに大いに役立ちます。
したがって、2 つの質問は次のとおりです。アプリがリモートで展開されているときに、これらのメッセージ/出力を確認するにはどうすればよいですか? さらに重要なことは、このプロジェクトでのすべての懸命な作業 (残念ながら詳細を開示することはできません) が無駄にならないように修正を実装するにはどうすればよいかということです。
私の光沢のあるアプリの基本的なコードは次のとおりです。
サーバー.R:
ui.R
編集:
セル変数が定義された直後に誤ったコード行を配置することで、いくつかの出力を取得できました。これにより、光沢のあるサーバーが出力を JavaScript コンソールにダンプしました。現時点では、これが出力をキャプチャする方法を知っている唯一の方法です。ただし、table_cell_clicked 属性はリモート サーバーにまったくエクスポートされていないのに対し、row_last_clicked などの他の属性はエクスポートされていることを示しているため、出力は非常に有益です。
これは、サーバーがエラーのある行を除いてローカルで実行されたときに得られる出力です (機能として table_cell_clicked が含まれていることに注意してください)。
これは、誤った行を使用してリモートで実行した場合の出力です (table_cell_clicked が受信されていないことに注意してください)。
r - リアクティブ SQL クエリからのデータを保存して、さらにフィルタリング (DT) し、ggplot に表示する方法
データベースから受け取ったデータをオブジェクトとして保存するにはどうすればよいですか?さらに(必要に応じて)データテーブル( DT
)でフィルタリングされ、を使用して表示されますggplot
か?
コードは次のとおりです。
助けてくれてありがとう!
[解決済み]
問題はrownames=FALSE
の場合、次のようdatatable
になります。
乾杯
r - Shiny DataTable: 特定の行の行選択を無効にする
shiny
DataTable
特定の行に対して行選択を無効にすることが可能かどうかを判断しようとしています。
selection
I のパラメーターを使用して、DT::datatable
行を事前に選択し、ユーザーが行または列、またはその両方を選択するかどうかを判断し、選択を完全に無効にすることができますが、除外する特定の行を指定できるかどうかは明確ではありません。これは可能ですか?
よろしく
r - 自動行番号 (光沢のある DT をフィルタリングした後)
rownames
データテーブルをフィルタリングした後、1,2,3...からカウントを再開したいと思います。出来ますか?
簡単なコードは次のとおりです。
例として、列 x をフィルター処理して 50-... の値を取得する場合、rownames
(この場合) 50,51.. ではなく、1,2... として開始したいと思います。
助けてくれてありがとう!
r - DT パッケージで生成されたテーブルを HTML に埋め込む
HTML レポートの一部として DT を使用しようとしています。これまで、xtable と R2HTML R パッケージを使用してきました。私はWebテクノロジーも初めてです。
問題は、xtable とは異なり、DT パッケージは HTML コード全体を作成し、ブラウザーを自動的に開くことです。「escape = FALSE」というオプションがありますが、DT オブジェクトを HTML に埋め込む他の方法が見つかりません。
DT で作成した HTML を他の HTML に埋め込む方法を知りたいです。これは、HTML 開発者にとって非常に基本的なテクノロジのように思えますが、私にとって、これを行う方法を見つけるのは非常に困難です。
xtable と R2HTML を使用する場合、新しい HTML を生成するコードは次のようになります。
ただし、DTの場合、作成したHTMLテーブルをこのhtmlに埋め込む方法がわかりません。
前もって感謝します。
r - DT パッケージを使用したデータ テーブルの並べ替え係数
5 ~ 10%、10 ~ 15% など、5% 刻みで表示したいデータがあります。これを行うには、それらを因子として格納するデータ フレームを用意します。レベルは中間点です。範囲、ラベルは表示する範囲です。たとえば、レベル 12.5 には 10 ~ 15% というラベルが付けられます。
ただし、データテーブルを使用してこれを正しくソートするのに問題があります。
ご覧のとおり、因子のレベルでソートするのではなく、文字列の最初の数字でソートしているように見えます。
文字列ではなく、データテーブルを因子レベルからソートする方法についてのアイデアはありますか? (データフレームをデータテーブルに渡す前に並べ替える以外に、ソート矢印をクリックして、どちらの方向にも正しくソートできるようにしたい)
r - DT パッケージを使用した navbarMenu のリアクティブ tabPanel
の値に依存するリアクティブなtabPanel / tabPanelsを使用して単純なアプリを作成したいと思いますselectInput
(すでにここで解決策を見つけました)。さらに、このウィジェットで 1 つの値を選択すると、フィルターとしても機能するさまざまな数の tabPanels が表示されます。たとえば、私のアプリではdiamonds
データセットを使用しています。「非常に良い」という単語を選択すると、この値を持つすべての行を含むデータセットが表示されます。その上部にはcolor
、フィルター処理されたデータセットのすべての一意の値も表示されます。私が達成したいのは、上記の tabPanels を使用してもう一度フィルタリングできるようにすることです。