R prévisualisation gvisTable en utilisant l'option de déclenchement d'événement et le code Javascript

Dans R, je cherche à définir la sélection de la sortie pour un gvisTable de sorte qu'une ligne ou une colonne spécifique soit mise en surbrillance.

Par exemple, j'ai le code suivant:

a <- as.data.frame(matrix(1:100, nrow=10)) plot(gvisTable(a)) 

Et seulement jusqu'à ce que vous cliquez, sur la ligne 4, est-ce que cela met en surbrillance.

Existe-t-il un moyen de présélectionner la ligne 4 lors de l'exécution de la fonction de tracé, c'est-à-dire qu'il met automatiquement en évidence la ligne 4.

Après avoir regardé dans la vignette pour googleVis, il semble y avoir un auditeur d'événements et un déclencheur d'événement qui peut avoir un code javascript inséré dans les options afin que la sortie soit modifiée. Cela a été fait en utilisant l'option gvis.listener.jscode. Y at-il un équivalent pour le déclencheur pour déclencher un événement. Je pense que le code javascript devrait utiliser quelque chose comme setSelection() mais ma connaissance Javascript est limitée au mieux et je ne suis pas trop sûr de l'intégrer.

Ps the eventlistener peut être trouvé en exécutant

 demo(EventListener) 

La seule façon dont je peux essayer de le faire est d'injecter un JavaScript personnalisé dans le HTML créé par l'appel à gvisTable() . Vous ne pourrez pas utiliser EventListener comme l'exemple que vous avez fourni: la raison en est que l'événementListener, tel qu'il est actuellement implémenté, ne s'exécute que lorsque la table est cliquée. Vous avez besoin de votre code pour exécuter avant. Il semble être le meilleur endroit pour l'insérer, puis, dans la section jsDrawChart du code HTML renvoyé. C'est là que la représentation JS de l'objet graphique est assemblée. Après avoir draw le graphique, vous pouvez ensuite effectuer des appels supplémentaires sur l'objet.

Un aperçu rapide de la documentation Google Charts pour l'objet table montre que vous disposez d'une belle fonction setSelection() disponible dans Javascript, en supposant que vous utilisez le format de paramètre approprié.

J'ai fait ce qui suit:

 mytab <- (gvisTable(a,chartid="myTable")) #you just want to add the following line of JS before the close bracket in the jsDrawChart function. # chart.setSelection([{'row':2, 'column':null}]); #in my case, that turned out to be the following: mytab$html$chart["jsDrawChart"] <- "\n// jsDrawChart\nfunction drawChartmyTable() {\n var data = gvisDatamyTable();\n var options = {};\noptions[\"allowHtml\"] = true;\n\n var chart = new google.visualization.Table(\n document.getElementById('myTable')\n );\n chart.draw(data,options);\n chart.setSelection([{'row':2, 'column':null}]); \n\n}\n \n" 

Vous pourriez certainement rendre cela un peu plus robuste en insérant automatiquement la ligne supplémentaire de JS avant le support étroit à l'aide de RegEx ou en modifiant la source de la fonction GoogleVis.

Mais une fois que j'ai ajouté cette ligne de JS, je suis maintenant en mesure d'exécuter l' plot(mytab) et de sélectionner automatiquement la ligne que je veux (n'oubliez pas qu'elle est indexée sur 0).