gpt4 book ai didi

r - 使用 `%>%` 和 `lm` 和 `rbind`

转载 作者:行者123 更新时间:2023-12-04 09:08:04 26 4
gpt4 key购买 nike

我有一个数据框 Z看起来像

t  x  y  d
0 1 2 1
1 2 3 1
2 3 4 1
0 1 2 2
1 2 3 2
2 3 4 2

d作为因子列。我知道想用 lm 拟合线性模型至 yt对于 d 中的两个因素并将其作为新列添加到数据框中。

我试过
Z %>%
filter(d == 1) %>%
lm(y ~ t)

但这给了我一个错误提示 "Error in as.data.frame.default(data) :
cannot coerce class ""formula"" to a data.frame"
.但
lm(y ~ t, data = Z)

工作正常。任何帮助,将不胜感激。

最佳答案

我们需要提取 data.表示数据对象

Z %>% 
filter(d == 1) %>%
lm(y ~ t, data = .)
#Call:
#lm(formula = y ~ t, data = .)

#Coefficients:
#(Intercept) t
# 2 1

summarise/mutate/group_by和其他 tidyverse 函数,我们可以简单地传递列名。在这里,要么我们需要从数据环境中获取列,要么创建一个 list summarise 中的输出
library(magrittr)    
Z %>%
filter(d ==1 ) %>%
summarise(lmout = list(lm(y ~ t))) %>%
pull(lmout) %>%
extract2(1)
#Call:
#lm(formula = y ~ t)

#Coefficients:
#(Intercept) t
# 2 1

关于r - 使用 `%>%` 和 `lm` 和 `rbind`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49402641/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com