【发布时间】:2015-10-08 23:30:02
【问题描述】:
我想用 R 中的赋值运算符结束管道。
我的目标(在伪 R 中):
data %>% analysis functions %>% analyzedData
其中data和analyzedData都是data.frame。
我已经尝试了几个变体,每个变体都给出一个独特的错误消息。 我尝试过的一些迭代:
data %>% analysis functions %>% -> analyzedData
data %>% analysis functions %>% .-> analyzedData
data %>% analysis functions %>% <-. analyzedData
data %>% analysis functions %>% <- analyzedData
错误信息:
Error in function_list[[k]](value) :
could not find function "analyzedData"
Error: object 'analyzedData' not found
Error: unexpected assignment in: ..
更新: 我想出的方法是:
data %>% do analysis %>% {.} -> analyzedData
这样,要对长管道进行故障排除/调试,您可以将这两行放入管道中,以最大限度地减少代码重新运行并隔离问题。
data %>% pipeline functions %>%
{.}-> tempWayPoint
tmpWayPoint %>%
more pipeline functions %>% {.} -> endPipe
【问题讨论】:
-
analyzedData <- data %>% analysis functions -
你的标题有点误导;您真正想要做的是将分配交错到管道中,而不是结束它。
-
@Hong-Ooi 我来到这里是因为我的问题是标题中的问题,事实上,事实证明这不是问题。但是对于像我这样想要回答这个问题的人来说,答案是中缀函数
[<- ()。 (我无法正确使用反引号;[<-在反引号中)。第一个参数是要子集然后分配的对象(以便通过管道输入),下一个参数是该对象的维度的子集(每个一个),最后一个是要分配给该子集的对象,或者覆盖它。