building a Wizard using RStudio Addin / Shiny Gadget (seq. dialogueViewer() ) - r

I would like to build a Wizard for my R package using Shiny Gadgets / RStudio Addins.
Essentially, this should comprise of a series of sequential dialogueViewer() windows.
For this I need:
a way to pass information from one dialogueViewer() to the next.
that only the first dialogueViewer() appears in the Addins menu / dropdown.
EDIT: I started working on something here but I get this error:
Error in handlers$add(handler, key, tail) : Key / already in use`
Any thoughts?
The second problem is relatively easily solved by only registering one function in the inst/rstudio/addins.dcf file.

Related

Atom or Rstudio like IDE alternative for julia language

Similar to Rstudio, Atom allowed you to run code segments on interactively rather than the entire script all at once. Is there a suitable Julia language IDE that is comparable to rstudio or Atom (juno) and allows for on-the-fly execution of code blocks because Atom is being phased out?
note: Thanks for answers in vs code to obtain interactive feature hold ctrl + return will run code.
Did you try the Microsoft Visual Studio Code ? You can check how to download and setup for Julia notebook in link below.
https://github.com/julia-vscode/julia-vscode#installing-juliavs-codevs-code-julia-extension
The Best, Wr
In Microsoft VS Code you can define code cells using magic comments (## or # %% or #- can play this role - the choice is yours):
##
(your code goes here)
##
A code cell is executed by pressing Alt + Enter while the cursor is inside the cell.
At the code below I pressed Alt + Enter while being in line 10.
The keyboard shortcut can be configured by selecting in the main menu View->Command Palette or pressing Ctrl + Shift + P:
VSCode. The Julia team was working on a Julia IDE called Juno but the website now says "Juno will receive no more feature updates. Development focus has shifted to the Julia extension for VSCode", and VSCode seems to be the recommended way to develop in julia.
The Julia extension for VSCode let's you run code block by just pressing shift+enter and it uses Revise.jl to make interactive sessions better. You can see plots and other outputs right in the editor, and recenty they have even added performance monitoring/benchmarking tools.
However, if you prefer notebook-style workflows, you can use Jupyter with Julia (and the IJulia kernel) but even better imo is Pluto, which is specifically made for Julia and has some nice features such as no hidden state.

R : GUIs fast to launch (alternatives to shiny ?)

I am trying to make some GUI for my CRAN package
some f function that locally launches a popup with a few params rendering a few outputs, like launching locally a simple shiny app.
the popup permits to select the parameters easily and then a "validate" button triggers the return of fwith the selected parameters, like shiny with stopApp
I have already done that with shiny but i think the result is a bit unsatisfying because shiny apps are slow to launch and stop (if there is an object to serialize i guess).
I have seen that some packages, like vdiffr, seem to answer this problem by making a list of the objects to change, thus they only launch shiny once to change everything with some selecter. If possible I'd like to avoid this solution.
So the question is : is there some kind of GUI framework more convenient than Shiny for this (only local, fast launch and fast return) ? Or some fine way to do that, that is light enough (I don't want to make my package to be extraordinary heavy for a small popup) ?
Here are GUI facilities that come with R (no packages needed):
(1) For sufficiently simple applications select.list, menu, readline, file.choose and choose.dir can be used and will present with a text or graphical user interface depending on what environment the user has. These all come with R and launch very quickly and are easy to program. See the help pages of those commands and try:
select.list(c("oranges", "apples", "pears"))
menu(c("oranges", "apples", "pears"))
readline("Enter name of fruit: ")
choose.dir()
file.choose()
(2) A possibility which is capable of user interfaces as sophisticated as shiny is the tcltk package. This comes with R so it does not need to be installed. It only needs to be loaded using a library statement. (If a user builds R from source then it is possible to build it without tcltk capability but in 99% of all cases tcltk will be present).
There are a few short examples of R source code employing tcltk here: https://www.stat.berkeley.edu/~s133/Gui-a.html, quite a few more examples at James Wettenhall's site and one can run the Rcmdr R package to see an example of a sophisticated tcltk user interface although running Rcmdr will take longer to load than a simple application due to its large size.
Because tcltk is a part of R itself it does not have a CRAN page but for additional packages that use tcltk look at the reverse dependencies of the tcltk2 package at the bottom of its CRAN page since any package that depends on it must also use tcltk.
That really depends on your coding knowledge. My first approach, however, would be to try to improve your shiny app. For that you can use the profvis package to check why exactly your shiny app is slow. Should you decide to stay with Shiny, there a lot of ways on how to reduce the starting time of Shiny. However, if you should come to the conclusion, that you really want to throw shiny overboard, then you should consider using JavaScript.
Either you write your complete app in pure JavaScript
Or you can use JavaScript within Shiny (e.g. r2d3)
Of course there are other ways as #Pork Chop mentioned of using rmarkdown or normal markdown.

R studio List and Dataframes auto name completion not working anymore

Suddenly R Studio stopped auto completing my list and data frame contents when entering mylist$ then pressing Tab. The result message I get is
No matches
I tried that on very simple lists or data frames like:
simpledataset <- data.frame(a=rep(0,100),b=rep(1,100))
However, when I load the dataset Mtcars, it correctly shows the column names.
I reset %localappdata%\RStudio-Desktop by renaming it, but didn't change anything.
Any idea of what could be the cause of that?
This sounds like a bug in the autocompletion system that is occasionally triggered when certain packages are loaded, or the byte-compiler optimization setting is increased. You might try checking a few things:
What is the value of compiler::getCompilerOption("optimize")? Autocompletion is known to fail when this value is equal to 3 in the current RStudio release (v0.99.896). You can try running compiler::setCompilerOptions(optimize = 2) to resolve this.
What packages do you have loaded? You can try loading packages one-by-one to see which affects RStudio's ability to provide autocompletions.
Finally, there should be a fix for this in the preview version of RStudio -- you can try it out at https://www.rstudio.com/products/rstudio/download/preview/.
Go to Tools>Global Options... and set autocomplete there.

Shiny: dataTableProxy - function doesn't exist?

I'm developing a Shiny application that provides interaction between a table with selection and a plot also with selection. When the plot is clicked to select a point, I would like to cascade that selection to the table. I've found this page (https://yihui.shinyapps.io/DT-proxy/) which describes exactly the process I'm trying to accomplish using dataTableProxy and selectRows functions. But even their example code does not work on my machine. I get an error saying "could not find function dataTableProxy"
I have version 0.1 of DT, shiny 0.12.2, shinydashboard 0.5.1, and R 3.1.2. Even looking at the DT documentation I see no mention of a dataTableProxy function.

%>% key binding / keyboard shortcut in Rstudio

I've been experimenting quite a bit with the increasingly popular %>% operator from the magrittr package.
I've used it enough that I've set a keyboard shortcut to save me typing:
shift+command+. instead of space, shift+5, shift+., shift+5, space.
This is great in SublimeTetxt2 but Rstudio does not allow services it does not work if I'm working within Rstudio projects.
So my question is:
Can you define text-inserting key-bindings or shortcuts within Rstudio?
This would be exactly synonymous with the alt+- binding for the assignment <- operator that is oxygen to the otter.
If someone could point me to where the shortcuts are coded in the github repo so I could "hack" my own, I suppose this would be a useful start.
https://github.com/rstudio/rstudio
Just noticed that RStudio v0.98.1079 has shift+command+M mapped for the %>% operator. You can check out the other keyboard shortcuts within RStudio by clicking at the Help tab or by entering alt+shift+K.
I think the answer to your question is "Not currently, but it's on RStudio's to-do list" (see: this and this).
If you want to hack it yourself, it looks like this is where you'd do it (GitHub: rstudio / src / gwt / src / org / rstudio / core / rebind / command / ShortcutsEmitter.java).
Also, it looks like shortcuts are managed here (GitHub: rstudio / src / gwt / src / org / rstudio / core / client / command).
For stuff like that you can use autohotkey. it is an external windows program but can do pretty much anything including hotkeys that type stuff and acronyms that are replaced by stuff you want
R studio Preview (v0.99.671) now supports keybuindings customization. It also has a bunch of other nice improvements, give it a try:
https://www.rstudio.com/products/rstudio/download/preview/
For people now, the best way to do something like this in RStudio if it's not already built in is to add a "snippet":
https://appsilon.com/rstudio-shortcuts-and-tips/#custom-snippets
It's in your global options and can be used to save pieces of code you often repeat to quickly insert it.

Resources