- 此问题在此处已有答案**:
Stepping through a pipeline with intermediate results(5个答案)
Printing intermediate results without breaking pipeline in tidyverse(3个答案)
4小时前关门了。
在编码时,我经常想检查我正在处理的管道的中间结果。如果我正在处理一个长管道的早期部分,它需要相当多的点击/鼠标来选择性地运行并保存结果。有没有一种简洁的方法可以像下面这样做?
library(dplyr)
result = mtcars |>
# Testing this step
filter(cyl == 4) |>
return_early() |>
# I don't want to run the rest of the pipeline
group_by(gear) |>
summarise()
以便在执行之后,result
将结果保存在return_early()
,而不执行流水线的其余部分?
3条答案
按热度按时间d8tt03nd1#
我的习惯是注解掉(
#
)指向下一个命令的管道,然后运行代码(Macbook cmd + enter或Windows ctrl + enter)。检查结果后,只需删除注解字符(
#
)并继续。这仍然需要点击几下来删除注解字符,希望看到其他的方法。
4si2a6ki2#
您可以将中间结果赋给一个临时对象
temp
,尽管整个管道仍然被求值并返回result
作为输出。更新
受@Maël使用
stop()
的启发,我创建了一个包含切换的函数,以便您可以控制是否对剩余的管道求值。temp
。***错误:**创建了中间对象"temp"。省略了其余管道! *
result
和temp
。c8ib6hqw3#
您可以先执行
assign
,然后执行stop
。它会抛出一个错误,但会停止计算: