错误对象“。”使用管道时找不到

时间:2018-07-17 02:15:01

标签: r magrittr

很抱歉,如果这是重复的话,但我找不到它:

我正在尝试使用。占位符与来自magrittr的管道(%>%),当第二次调用时似乎不起作用。

例如,它可以工作:

data.frame(t = c(1.1,2.2,3.3), y = c(1,2,3)) %$% (t-y)^2 %>% sum(.)

但这不是:

data.frame(t = c(1.1,2.2,3.3), y = c(1,2,3)) %$% (t-y)^2 %>% sum(.)/length(.) 

任何直觉为何会发生这种情况?谢谢!

丹尼

1 个答案:

答案 0 :(得分:2)

我们需要将其放置在大括号内以进行整体评估

data.frame(t = c(1.1,2.2,3.3), y = c(1,2,3)) %$%
          (t-y)^2 %>% 
          {sum(.)/length(.)} 
#[1] 0.04666667

mean

相同
data.frame(t = c(1.1,2.2,3.3), y = c(1,2,3)) %$%
      (t-y)^2 %>% 
      mean
#[1] 0.04666667