假设我有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来执行代码?
答案 0 :(得分:0)
避免在NA
函数中排除lm()
s。相反,良好的做法是将清洁步骤与建模步骤分开。例如,您可以使用drop_na()
包中的tidyr
函数,以便从数据集中删除包含缺失值的行。下面我使用内置的airquality
数据集作为示例:
library(tidyr)
dataset <- airquality %>% drop_na()
> nrow(airquality) - nrow(dataset)
[1] 42