radiant-rstats / radiant

Business analytics using R and Shiny. The radiant app combines the menus from radiant.data, radiant.design, radiant.basics, radiant.model, and radiant.multivariate.
https://radiant-rstats.github.io/docs/
Other
452 stars 130 forks source link

several questions/feature requests #9

Closed januz closed 7 years ago

januz commented 7 years ago

Hi,

by accident I stumbled across radiant today and am stunned! Thanks for this great piece of software! I was searching for a way to give researchers at our institute an easy way to explore data they collected or are collecting at the moment as kind of a dashboard, and I think that radiant might be the answer. I have some questions/feature requests. I hope I am not too unspecific, please tell me if I should divide them into several issues or similar...

1) import from REDCap (or other databases)

We use REDCap at our institute (https://projectredcap.org/). It would be great if one could import data from this (or other) databases directly, without needing to first export a csv file that then gets imported to radiant. That would allow one to always work with the newest (most correct) raw data, especially when one uses radiant as dashboard for currently running studies as described above. Furthermore, the import step would be transparent and reproducible that way.

The easiest, most generic way probably would be to give the user the option to write code that results in an R dataframe, which is then used by radiant?!

2) reload data and apply all saved operations on new data

Related to the first point I asked myself whether it is possible to "refresh" the data, i.e., reload the data from the specified file or database and have all operations (plots, analyses) be refreshed on the possibly changed data. That would be convenient for a dashboard functionality. Alternatively, one could just use the Rmd report function and render the report anew I guess.

3) longitudinal data

Is there support for graphing/analysing longitudinal data?

4) linear mixed effects models/structural equation modeling

It might be potentially interesting to include LME and SME.

Thanks so much!

vnijs commented 7 years ago

Thanks for the comments about Radiant @januz! Support for databases is high on the todo list. However, adding decision trees and and a menu for text analysis are even higher up that list. The easiest way to update results based on data from a database is to create a report with the analyses you want in R > Report and then add a code chunk at the beginning of the report that gets the data and adds it to the r_data list that contains all the datasets.

For point 2, you can just reload a dataset (with the same name), revisit the page where you did the analysis, and press estimate to get the updated results. As you suggested, however, creating a report (in R > Report) is probably the better option because then you can keep track of a larger number of different analyses. If the file has a different name you could do a search-and-replace in R > Report and enter the new name

You can create line graphs in the Data > Visualize tab if that is what you are looking for in point 3.

Point 4 ... nice idea but probably won't happen very soon. You could, however, write your own extension to radiant.data. radiant.design is probably the simplest example of an extension. radiant.dose is another

januz commented 7 years ago

Thank you very much for the explanations, @vnijs! I didn't know that one could add data to the r_data list by using a report. Keep up the great work!

vnijs commented 7 years ago

As an example ... suppose you use the Create feature in Data > Transform to add a new variable rnd to the diamonds data but you save the change to a new dataset (e.g., diamonds_rnd).

In the create dialog you would enter rnd = rnorm(3000). You change the name of the data to save the change to and then after clicking the Store button the code below would be created for you. The first line creates the new dataset with the rnd variable. The second, adds the name of the dataset to the Datasets dropdown and the third adds any data description that was available for diamonds to diamonds_rnd.

Hope that helps.

## create new variable(s)
r_data[["diamonds_rnd"]] <- mutate(r_data[["diamonds"]], rnd = rnorm(3000))

## register the new dataset
r_data[["datasetlist"]] <- c("diamonds_rnd", r_data[["datasetlist"]]) %>% unique

r_data[["diamonds_rnd_descr"]] <- r_data[["diamonds_descr"]]
januz commented 7 years ago

Thanks for the example!