管道%>%的这行代码有什么问题?

时间:2015-08-12 20:28:43

标签: r dplyr magrittr

我试图跑步。

1:10 %>% replace(`>`(.,4), 999)
Error in replace(`1:10`, . > 4, 999) : object '.' not found

也许我一直在使用.错误,所以我去阅读magrittr文档。我学会了使用{}来覆盖传递.作为第一个参数。

所以现在我尝试

1:10 %>% {replace(., `>`(.,4), 999)}
Error in replace(`1:10`, . > 4, 999) : object '.' not found

不,仍然没有工作。我运行了为{}(第9页)

提供的示例代码
1:10 %>% {c(min(.), max(.))}
Error in eval(expr, envir, enclos) : object '.' not found

示例代码甚至对我不起作用。我做错了什么?

1 个答案:

答案 0 :(得分:1)

我和@Akrun一起无法重现错误,但是

1:10 %>% replace(.>4,999)

看起来更简单,更容易阅读。 (这是与magrittr版本1.5的干净会话,没有加载其他非基本软件包,工作区中没有其他内容。)

旁注:我认为这是更长/更复杂的工作流程的一部分。如果您只是将replace(x,x>4,999)替换为x %>% replace(.>4,999),我不确定我是否明白这一点......