可以在magrittr管道之后使用return()来写一个对象吗?

问题描述 投票:0回答:1

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

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

我认为return()不是要使用外部函数,所以:是否有一种可以想象的方式可能会破坏我的代码?

我也偶然发现了{.}和另一种选择,但我真的不知道它的作用和搜索信息(即使在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() #  

注意:我意识到这是标签“编码风格”的边缘,所以我想指出我对基于意见的讨论不感兴趣,但建议如果这可能在某些情况下破坏我的代码。欢迎使用破坏代码的示例,以及其他建议。

我认为这些主题/主题是相关的:

r tidyverse magrittr
1个回答
0
投票

正如@Roland和@RolandASc所提出的那样:?identity()正在做我想做的事。我从那以后一直在使用它,到目前为止还没有遇到任何意外。

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

© www.soinside.com 2019 - 2024. All rights reserved.