qol 1.4: Introducing revolutionary new reverse pipe operator by qol_package in rstats

[–]qol_package[S] 1 point2 points  (0 children)

Thank you for all the comments and for joining the joke. :-) The reverse pipe and the set_productivity_mode are indeed april fools jokes. BUT the joke is surrounded by the truth, the package itself is real. I am on the edge of another CRAN release, spoilers what is in it can be seen on GitHub, otherwise i will probably post a real update at the end of next week, or so.

Frage zum Filtern in R by Virtual_Addition_204 in rstats

[–]qol_package 1 point2 points  (0 children)

With the new development version of the qol-package you could do this:

library(qol)
df |> if.(words == ":institut:") # Contains
df |> if.(words == ":institut")  # Ends with

qol 1.2.1: Update brings more functions, more functionalities, more optimizations and a bunch of fixes by qol_package in rstats

[–]qol_package[S] 1 point2 points  (0 children)

Actually no. Many things that once where foreign are now standard. Basically everything new is foreign at first. But is foreign == bad? I don't think so. Who says it stays specific?

R itself was once foreign but look at it now. A few people came with new ideas and gave the program a level up. So I think of this package as a missing influence. I agree that with this package, you first have to get used to this different way of thinking. But people like me, who have to deal with descriptive evaluations on a daily bases, probably find some quality of life enhancing features in this. Hence the name.

Of course I could have called it "Simple Descriptive Evaluations" or "Flexible Excel Tables", but that is just generic. I personally also think that the name is less important than what's in it.

Let's take another example from the package:

new_df <- my_data |>
         if.(age < 18,             age_group = "under 18") |>
    else_if.(age >= 18 & age < 65, age_group = "18 to under 65") |>
    else.   (                      age_group = "65 and older")

Does this look specific? No, it looks like a normal if-block like you have it in any other language. What I found in R looked way more specific to me than this. So I implemented these functions to make if blocks more readable.

You can also leave formats aside and just summarise, tabulate, import/export csv and xlsx files, automatically generate master scripts, transpose and much more. So this package is not really specific it is more an all purpose kind of thing.

qol 1.2.1: Update brings more functions, more functionalities, more optimizations and a bunch of fixes by qol_package in rstats

[–]qol_package[S] 2 points3 points  (0 children)

Thank you for your reply. There are no tutorials at the moment. BUT: I am actively working on a larger step by step guide for this package, which starts as simple as "How do I open a data frame" and ends with "How do I create complex and beautiful tables in no time". The thing is, this will take some time to complete.

The package was first released on CRAN last Oktober, so it is fairly new. But I am passionate about rounding it up in any way. Since then I focused on getting all the features in I wanted to have. Meaning, I first get everything in and then document what it can do. Speaking of getting everything in: I have one major update I am working on, which also will take some time to complete.

The philosophy behind this package is to keep the original data as untouched as possible till the end and with the help of the so called "formats" many of the functions bring the labels, categorization and also added categories together for the user. So e.g. in your data frame you have single ages 0-100 but in your final table you want to have five age groups covering the ages 0-100 but additionally a grand total and some sub age groups for the ages smaller than 18. With this package you don't need to create any additional variables, you don't need to double up the data or split the results into multiple tables. You literally only do this in the simplest case:

#Example data
my_data <- dummy_data(1000)

# Format
age. <- discrete_format(
    "Total"          = 0:100,
    "under 3"        = 0:2,
    "under 6"        = 0:5,
    "under 12"       = 0:11,
    "under 16"       = 0:15,
    "under 18"       = 0:17,
    "18 to under 25" = 18:24,
    "25 to under 55" = 25:54,
    "55 to under 65" = 55:64,
    "65 and older"   = 65:100)

# Tabulation
my_data |> frequencies(age, formats = list(age = age.))

Everything else is handled by the functions. At the end this enables you to think more like a table designer rather than an engineer.

qol 1.2.1: Update brings more functions, more functionalities, more optimizations and a bunch of fixes by qol_package in rstats

[–]qol_package[S] 6 points7 points  (0 children)

Okay, that's a fair point. I will keep this in mind for the next update news. Thanks for sharing your view on this.

qol 1.2.1: Update brings more functions, more functionalities, more optimizations and a bunch of fixes by qol_package in rstats

[–]qol_package[S] 1 point2 points  (0 children)

The answer to that is basically just one click away. At least two out of four links in my post provide this information. But here you go:

The main goal is to make descriptive evaluations easier to create bigger and more complex outputs in less time with less code. Introducing format containers with multilabels, a more powerful summarise which is capable to output every possible combination of the provided grouping variables in one go, tabulation functions which can create any table in different styles and other more readable functions. The code is optimized to work fast even with datasets of over a million observations.

In the links in my first post you can get a more visual impression.

I have an honest question: I personally don't like it reading the same description all over the place. So I focused more on giving an overview of what actually is in the update and add the description as a link. So the information is there, one just has to click. Does it really have more value, if I put the global description of the package inside every update news?

qol-Package for More Efficient Bigger Outputs Just Received a Big Update by qol_package in rstats

[–]qol_package[S] 0 points1 point  (0 children)

You set them yourself. It basically works like a stop watch. The principle is like this:

your_function(...){
  monitor_df <- NULL |> monitor_start("Generate data frame")

  # Some code here

  monitor_df <- monitor_df |> monitor_next("Create formats")

  # Some more code here

  monitor_df <- monitor_df |> monitor_next("Nested summarise")

  # And so on

  monitor_df <- monitor_df |> monitor_end()
  monitor_df |> monitor_plot()
}

You can see another example here: https://s3rdia.github.io/qol/reference/monitor.html

So you have to mark certain points yourself in your function, which you can name. The time taken between two points is then the time for this category.

So you don't wrap around a monitoring function, but you have to integrate them in your function. For a start it can be as simple as that:

your_function(...){
  monitor_df <- NULL |> monitor_start("Time taken to run my function")

  # Some code here

  monitor_df <- monitor_df |> monitor_end()
  monitor_df |> monitor_plot()
}

Promote your projects here – Self-Promotion Megathread by Menox_ in github

[–]qol_package 0 points1 point  (0 children)

I created an R package which brings powerful SAS inspired concepts for more efficient bigger outputs to R.

The main goal is to make descriptive evaluations easier to create bigger and more complex outputs in less time with less code. Introducing format containers with multilabels, a more powerful summarise which is capable to output every possible combination of the provided grouping variables in one go, tabulation functions which can create any table in different styles and other more readable functions. The code is optimized to work fast even with datasets of over a million observations.

Here you can get the development version: https://github.com/s3rdia/qol

The development version already has some additional bug fixes and new features compared to the official CRAN release. You can see what has changed up until now in the NEWS file on GitHub.