Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

colRanks2()/rowRanks2(): As colRanks()rowRanks() where 'ties.method' has the same default as rank() #251

Closed
HenrikBengtsson opened this issue Apr 4, 2024 · 4 comments
Labels

Comments

@HenrikBengtsson
Copy link
Owner

Updating the default for argument ties.method for rowRanks() might be too risky for backward compatible reasons, cf. #142.

It could be quicker to just introduce rowRanks2() that uses the same default.

@yaccos
Copy link
Contributor

yaccos commented Apr 4, 2024

I think that would be a little confusing to the users as the only difference between the functions would be the default argument. Writing rowRanks(ties.method = "average") requires some more keystrokes, but is much clearer.

@HenrikBengtsson
Copy link
Owner Author

HenrikBengtsson commented Apr 4, 2024

We can work with CRAN and Bioconductor packages to use explicit arguments, but I'm concerned about all existing scripts and dynamic reports that will silently give the wrong answer when changing the default. We have no way to notify those cases.

@HenrikBengtsson
Copy link
Owner Author

Either way, we could make argument ties.method a required argument for the existing colRanks() and rowRanks().

We could start out by giving a .Deprecation() warning when missing(ties.method) is TRUE. We probably have to limit the number of warnings produced to avoid flooding end users, but also to avoid a performance loss. We could start out softly by only reporting once per session. Then we can slowly crank up the noise level over releases. Eventually, we can get to a point where move to a .Defunct() error. We should probably also allow for temporarily adjusting this behavior via R options and matching environment variables.

@HenrikBengtsson
Copy link
Owner Author

Either way, we could make argument ties.method a required argument for the existing colRanks() and rowRanks().

We could start out by giving a .Deprecation() warning when missing(ties.method) is TRUE. We probably have to limit the number of warnings produced to avoid flooding end users, but also to avoid a performance loss. We could start out softly by only reporting once per session. Then we can slowly crank up the noise level over releases. Eventually, we can get to a point where move to a .Defunct() error. We should probably also allow for temporarily adjusting this behavior via R options and matching environment variables.

This is the strategy we decided on back in April 2024. This is tracked in #142.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants