I often use non-tidyverse functions that work better with rownames, such as PCA or distance matrices. It's not impossible to avoid using rownames, but it's often handier (or I have just gotten into the habit ).
Now, when I wrangle parts of that data with tidy functions I get constantly reminded that rownames on tibbles are deprecated. I know and fully understand that:
This isn't a problem for me, yet. However, if in future tibbles entirely refuse to have rownames at all and just drop them, that would be a problem. Is this a likely future?
Row name handling is stricter. Row names were never supported in tibble() and new_tibble(), and are now stripped by default in as_tibble(). The rownames argument to as_tibble() supports:
NULL : remove row names (default),
NA : keep row names,
A string: the name of the new column that will contain the existing row names, which are no longer present in the result.
The old default can be restored by calling pkgconfig::set_config("tibble::rownames", NA), this also works for packages that import tibble .
Also some more detail in the NEWS file in the 2.0.0 breaking changes section:
My interpretation of the above is that there are workarounds for dealing with rownames in tibbles, but that rownames are sort of antithetical to the design of tibbles. I can't speak for the future in its entirety, but hopefully this info will give you some sense of how to keep your workflow robust.
Thank you Mara that's good to know and a very helpful response!
I understand how the tidy philosophy doesn't make sense with rownames, all the same I do hope that column_to_rownames() will still be maintained. For certain kinds of analysis, especially distance matrices, rownames really do make sense.
That's kind of what I'm already doing .I just wanted to check that rownames_to_column() and column_to_rownames() won't go away sometime in the future. I'm worried that rownames on Tibbles won't just be not encouraged but strictly prohibited. I know that as_tibble() strips them, but just running a df through any random tidyverse function (like select()) and getting a tibble output currently doesn't strip them off.. but the constant message I get about them being deprecated sort of makes it seem like they might start stripping them off always soon