rnim
box
Our great sponsors
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
rnim
-
Deeplearning in Nim?
While indeed we are less people developing stuff in Nim compared to even the Julia community (which itself is of course much smaller than say Python), we do have cover a large amount of the typical needs in the scientific computing domain. And where we miss stuff it's a) easy to wrap C/C++ or b) simply call Julia, R or Python (As a personal reference I'm doing data analysis & numerical physics stuff in context of my PhD in physics and I literally do everything in Nim. The only significant C dependency {and only as a shared lib} I depend on is libhdf5 via nimhdf5).
-
Stan in Nim?
use Rnim to access the R bindings
-
Anyone attempted to make Nim serve R's role? How is it currently?
If you're willing to help out, you'll surely be able to do anything you need. If Nim libraries fail, you can also always call R directly from Nim via Rnim!
-
Generate Python extensions using Nim language
Maybe also of interest is a nascent package for R calling Nim (or vice versa): https://github.com/SciNim/rnim
-
Nim -- a modern "glue" language like Python
c2nim is a tool to translate ANSI C code to Nim. The output is human-readable Nim code that is meant to be tweaked by hand after the translation process. If you are tired of wrapping C library, you can try futhark which supports "simply import C header files directly into Nim". Similar to futhark, cinterop allows one to interop with C/C++ code without having to create wrappers. nimLUA is a glue code generator to bind Nim and Lua together using Nim's powerful macro. nimpy and nimporter is a bridge between Nim and Python. rnim is a bridge between R and Nim. nimjl is a bridge between Nim and Julia! Last but not least, genny generates a shared library and bindings for many languages such as Python, Node.js, C.
-
What would you like to see from an R2 / R++ / R#
I am risking to be offtopic, but there is somenthing interesting happening in Nim, where someone wrote a wrapper to R: https://github.com/SciNim/rnim
box
- Trying to Replicate Excel financial Functions
-
Can someone explain how R project are organized and deployed?
As for organising code within a project, as mentioned packages really don’t allow this beyond collation order. The best solution in this space is the ‘box’ package which implements a fully-featured module system for R. ‘box’ notably gets used by some folks to implement large-scale Shiny applications; if this is what you’re after, I would recommend the ‘rhino’ framework, which builds upon Siny and ‘box’.
-
Good practice with long R scripts - any examples?
You can write amazing, clean, modular code with the box package.
-
Does anyone feel like R is actually vastly worse for dependency/environment management than Python?
I would look into box https://github.com/klmr/box if you haven’t heard of it already
-
"Managing large codebases in R" webinar (Oct. 6, 2022)
Shapeless plug: check out the already mentioned ‘box’, I think it’s strictly superior to ‘import’ (but I’m biased).
-
Get tsarted wiht R using this Cheat Sheet - DataCamp
By contrast, R code doesn’t need to change the working directory at all! Having to do so hides other flaws in the code. For instance, when trying to load code or data, use the tools provided by R. That is, write packages and use system.file or, when not writing packages, use ‘box’.
-
Which R function do you find somewhat tricky?
‘box’ fixes that.
-
Restructuring a large R project. Need advice on how to wire up file paths and associated objects.
I think your use-case is best addressed by the ‘targets’ package. But I would also recommend checking out the ‘box’ package for a more general way of structuring R projects in modules which isn’t supported well natively by R (disclaimer: I wrote that package). Writing R code as modules fundamentally side-steps the issue of having to deal with absolute paths. Instead, all code and data are either contained in the module or can be accessed relative to the working directory.
-
[Q] Loading `dplyr` packages within a function but not outside of it
However, using ‘box’, as recommended in another comment, allows you to achieve the same effect with less (and cleaner) code, by declaring your imports locally with the box::use function.
-
Is it possible to see what functions are used from what library?
If you're writing you're own code you can use packageName::functionName(), or the box package. Which is definitely useful on larger codebases.
What are some alternatives?
genny - Generate a shared library and bindings for many languages.
renv - renv: Project environments for R.
c2nim - c2nim is a tool to translate Ansi C code to Nim. The output is human-readable Nim code that is meant to be tweaked by hand before and after the translation process.
ggplot2 - An implementation of the Grammar of Graphics in R
Datamancer - A dataframe library with a dplyr like API
tidytable - Tidy interface to 'data.table'
nimLUA - glue code generator to bind Nim and Lua together using Nim's powerful macro
workflowr - Organize your project into a research website
nimpy - Nim - Python bridge
rspm - RStudio Package Manager
nimhdf5 - Wrapper and some simple high-level bindings for the HDF5 library for the Nim language
lintr - Static Code Analysis for R