box
tidytable
Our great sponsors
box | tidytable | |
---|---|---|
31 | 26 | |
808 | 435 | |
- | - | |
7.8 | 8.3 | |
7 days ago | 9 days ago | |
R | R | |
MIT License | GNU General Public License v3.0 or later |
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.
box
-
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’.
-
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).
-
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.
-
How do you organize your code snippets/notes?
Check out ‘box’, it’s designed precisely to solve (most of) your issues. Namely, it allows you to organise your R code files into (nested) modules, which can either be part of one project, or they can be stored centrally, and reused seamlessly across projects. It also allows you to document your code and makes this documentation available just like package documentation.
-
Creating your own R package
I'll also name drop the Box package, which serves like a middle of the road option between creating packages and sourcing scripts. It allows you to treat scripts (and the functions inside them) like packages without having to go through all the extra steps to build packages. In that way, it's more similar to creating and importing python modules.
-
import functions from a package without loading the package
I don't fully understand what happens when you attach a package, so I can't speak to your question about side-effects. However, if you're looking for an alternative, possibly safer, strategy, you might try the package box.
There is: use the ‘box’ package. It allows this and more. In your specific case, you’d write
-
Reference project for an R 2+2=4 style application coverage, testthat and a build file
That said, I’ve been playing with a framework for command line applications in R (as a ‘box’ module), and I guess you could call the example application “2+2=4” style (it’s a command line calculator, complete with automatically generated option parser etc.).
-
What would you like to see from an R2 / R++ / R#
You can do that with ‘box’, check it out!
tidytable
- Tidyverse 2.0.0
-
fuzzyjoin - "Error in which(m) : argument to 'which' is not logical"
If you need speed, you should consider using dtplyr (or tidytable), or even dbplyr with duckdb.
-
tidytable v0.10.0 is now on CRAN - use tidyverse-like syntax with data.table speed
And the Github link if you want to dive into the code.
Other than that you can check the news for other changes!
What do you think of this instead?
-
R Dialects Broke Me
I’d say tidytable is a better option these days as it supports more functions. Although I think dtplyr has improved on this front recently, but still lags. The author of tidytable contributes to dtplyr as well.
-
Why is {dplyr} so huge, and are there any alternatives or a {dplyr} 'lite' that I can use for the basic mutate, group_by, summarize, etc?
Tidytable is what you might be looking for: https://markfairbanks.github.io/tidytable/, this will require a bit of refactoring (e.g group-bys happen as arguments in summarise/mutate). You'll get data.table like speed in a very compact & complete package.
- tidytable v0.8.1 is on CRAN - it also comes with a new logo! Need data.table speed with tidyverse syntax? Check out tidytable.
-
tidytable v0.7.0 is now on CRAN! Use tidyverse-like syntax with data.table speed.
Github page - (if you want to browse the source code)
What are some alternatives?
dtplyr - Data table backend for dplyr
tidypolars - Tidy interface to polars
renv - renv: Project environments for R.
polars - Dataframes powered by a multithreaded, vectorized query engine, written in Rust
tidyr - Tidy Messy Data
Apache Arrow - Apache Arrow is a multi-language toolbox for accelerated data interchange and in-memory processing
Tidier.jl - Meta-package for data analysis in Julia, modeled after the R tidyverse.
root - The official repository for ROOT: analyzing, storing and visualizing big data, scientifically
extendr - R extension library for rust designed to be familiar to R users.
ggplot2 - An implementation of the Grammar of Graphics in R
db-benchmark - reproducible benchmark of database-like ops
rnim - A bridge between R and Nim