R:使用dplyr进行管道传输会返回其他NULL

时间:2019-11-23 14:04:19

标签: r dplyr

我想从dplyr管道中的模型获取均方误差。 不知何故,当我使用dplyr时,输出为NULL而不是所需的错误度量。

那是为什么?

MWE:

require(dplyr)
data("iris")
iris %>% 
 CVlm(form.lm = formula(Sepal.Length ~ Sepal.Width), m = 2) %>% 
 attributes(.)["ms"] #Returns NULL instead of 0.719

cvlm_model <- CVlm(data = iris, form.lm = formula(Sepal.Length ~ Sepal.Width), m = 2)
attributes(cvlm_model)['ms'] # Returns 0.719

谢谢

2 个答案:

答案 0 :(得分:1)

尝试使用花括号

library(magrittr)
library(DAAG)

iris %>% 
 CVlm(form.lm = formula(Sepal.Length ~ Sepal.Width), m = 2) %>%
 {attributes(.)["ms"]}

答案 1 :(得分:0)

这将满足您的要求

iris %>% 
  CVlm(form.lm = formula(Sepal.Length ~ Sepal.Width), m = 2) %>% 
  attributes %>% .$ms

# [1] 0.719