是否有方法可以知道在取消嵌套的过程中是否重命名了表?我想知道是否有什么方法可以拦截通过New names:
传递的任何消息,并给予有关解决方案的更多上下文
# min reprex
library(tidyverse)
f <- function() {
tibble(
x = 1:2,
y = 2:1,
z = tibble(x = 1)
) |>
unnest_wider(z, names_repair = "unique")
}
f()
New names:
• `x` -> `x...1`
• `x` -> `x...3`
x...1 y x...3
----- ----- -----
1 2 1
2 1 1
更多上下文:
- 这条信息源于
vctrs::vec_as_names(c("x", "x"), repair = "universal")
- 我看到了关于
withCallingHandlers()
的信息,但不确定这是否是正确的路由。我以为有一种方法可以让错误/消息具有可以拦截的类,但我不记得我读到了什么。 testthat::expect_message()
中的一些东西可能会有帮助。我以为会有一个has_message()
函数在那里。- 有很多整洁的评估和比较前后的名称可能是棘手的。我可以用正则表达式
"\\.+\\d+$"
来查找名称,但不确定这是否足够强大,因为数据可能已经有了这种语法的字段。
1条答案
按热度按时间t0ybt7op1#
从hadley's answer中获得灵感,关于@ritchie-sacramento链接的问题,您应该查看
evaluate
包。这将需要更多的测试,看看当出现错误、警告甚至多条消息时,数据结构会发生什么变化。