dplyr包中多条件的线性回归

时间:2017-06-15 05:47:58

标签: r dplyr regression coefficients

假设我有20辆车,每辆车都进行了10次测试,并且在每次测试中,根据路线距离驱动定义了多个路段。

对于每个veh_id + test_id +段组合,我想得到高度与路线距离回归的简单线性回归斜率。

在R中使用dplyr包,我认为这样的事情应该有效:

dataset <- dataset %>%
group_by (veh_id, test_id, segment) %>%
do(data.frame(mod = coef(lm(height ~ distance,data = .))[2])) %>%
left_join(dataset,.)

但错误报告为:

  

lm.fit中的错误(x,y,偏移=偏移,singular.ok = singular.ok,...)   :0(非NA)案件

我回顾了我的数据,有一些NAs用于&#34;身高&#34;可变...

有没有办法通过排除那些高度的NA来执行代码?

1 个答案:

答案 0 :(得分:0)

避免在NA函数中排除lm() s。相反,良好的做法是将清洁步骤与建模步骤分开。例如,您可以使用drop_na()包中的tidyr函数,以便从数据集中删除包含缺失值的行。下面我使用内置的airquality数据集作为示例:

library(tidyr)
dataset <- airquality %>% drop_na()

> nrow(airquality) - nrow(dataset)
[1] 42