在 magrittr 管道之后使用 return() 来写入对象会破坏某些东西吗?

Can the use of return() after a magrittr pipeline to write an object break something?

我经常需要手动清理数据集中的条目。 为了灵活性和可读性,我喜欢使用管道。 有时我后来遇到另一件事我需要清理,所以我在我的 magrittr 管道中保留了一个可复制粘贴的行。

ggplot2 中,在末尾调用一个空的 theme() 有助于我保持编码的灵活性,以便以后添加。我从来没有遇到过问题,并且认为我可以在管道中对 return() 做同样的事情。

我认为 return() 不应该使用外部函数,所以:是否有可能破坏我的代码的可能方法?

我也偶然发现了 {.} ans 一个替代方案,但我真的不知道它的作用和搜索信息(甚至使用 SO 上的高级搜索)也无济于事。

示例:

starwars %<>% 
  mutate(hair_color = ifelse(name == "Captain Phasma", "blond", hair_color)) %>%
  mutate(skin_color = ifelse(name == "Captain Phasma", "fair", hair_color)) %>%
  mutate(hair_color = ifelse(name == "Zam Wesell", "blond", hair_color)) %>%
  #mutate(var = ifelse(name == "cond", "replacement", var)) %>% ### for future c/p
  return() #  

注意:我意识到这是标记 "coding-style" 的边界,所以我想指出我对基于意见的讨论不感兴趣,但如果这会破坏我的代码,请提出建议某些情况下。欢迎使用它确实破坏代码的示例,以及其他建议。

我认为这些 topics/threads 是相关的:

正如@Roland 和@RolandASc 提出的那样:?identity() 正在做我想做的事。从那以后我就在使用它,到目前为止还没有遇到过惊喜。

在 RStudio 社区 here 上找到了进一步的相关讨论。