Use data.table for grouped sort in pw_info()
#300
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The profiling indicated that
dplyr::group_by()
anddplyr::arrange()
were two of the biggest bottlenecks:I confirmed these were the ones in
pw_info()
:gsDesign2/R/pw_info.R
Lines 207 to 210 in 6d4371a
In my previous PR #295, I had delayed converting this to data.table. Once I remembered that
group_by()
also orders the columns, I was able to figure it out. Here is example code to show that the two approaches are identical:In repeated benchmarking of
gs_power_ahr()
, this update removes reduces the runtime by 70-140 msI also removed an isolated
dplyr::transmute()
fromgs_info_rd()
and updated the documentation to reflect that now a data frame is returned