我试图在我的数据帧的两列之间写一个多项式函数。
在这两列中,我对名为Group1
和Group2
的行进行了分组。
我希望使用
R
〜V
值
fit_all <- summary(lm(R ~ poly(V,2,raw=TRUE), data = df, subset = state))
但是我收到了警告信息
总结.lm(lm(R~poly(V,2,raw = TRUE),data = df_rep,subset = state)): 基本上完美契合:总结可能不可靠
我检查了这个可能与NA值有关的错误。由于我的实际数据和df
数据中都没有NA值,因此我陷入困境。
最后为每个Group1
和Group2
我想为每个组配件提取coefficients
。
请看一下我可重复的例子
set.seed(1)
No <- rep(seq(1,4,1),each=21)
AC <- rep(rep(c(78,110),each=1),times=length(No)/2)
state <- rep(rep(c("Group 1","Group 2"),2),each=21)
V <- rep(seq(100,2100,100),times=4)
R = sort(replicate(4, sample(5000:6000,21)))
df <- data.frame(No,AC,V,R,state)
头(DF)
No AC V R state
1 1 78 100 5004 Group 1
2 1 110 200 5014 Group 1
3 1 78 300 5030 Group 1
4 1 110 400 5039 Group 1
5 1 78 500 5057 Group 1
6 1 110 600 5068 Group 1
答案 0 :(得分:2)
检查此示例使用dplyr和扫帚包。
library(dplyr)
library(broom)
set.seed(1)
No <- rep(seq(1,4,1),each=21)
AC <- rep(rep(c(78,110),each=1),times=length(No)/2)
state <- rep(rep(c("Group 1","Group 2"),2),each=21)
V <- rep(seq(100,2100,100),times=4)
R = sort(replicate(4, sample(5000:6000,21)))
df <- data.frame(No,AC,V,R,state)
df2 = df %>%
group_by(state) %>% # group by variable state
do(data.frame(model = tidy(lm(R~poly(V,2,raw=TRUE), data=.)))) %>% # for each group run a linear fit and save the output as a date table
ungroup # forget about your initial grouping
现在你有了一个数据集(dt2),它为每个类别的线性模型输出提供了一些信息作为列。然后你可以像任何其他数据集一样处理dt2。 例如:
df2 %>% filter(state=="Group 1") # get info only for Group 1
df2 %>% filter(state=="Group 1") %>% select(model.term, model.estimate) # get only variables and coefficients for Group 1