【发布时间】:2021-01-19 11:41:54
【问题描述】:
假设我有一些看起来像这样的数据:
N <- 200
X <- sample(letters[1:5],N, replace = T)
Y <- rnorm(N)
W <- abs(rnorm(N))
my_data <- tibble(X, Y, W)
我想对X 定义的每个数据子集运行仅截距回归。为此,我使用nest()、mutate() 和map(),如下所示:
my_data %>%
group_by(X) %>%
nest() %>%
mutate(fit = map(data, ~lm(Y ~ 1, data = .x)))
虽然此代码有效,但当我尝试合并回归权重时,如下所示:
my_data %>%
group_by(X) %>%
nest() %>%
mutate(fit = map(data, ~lm(Y ~ 1, data = .x, weights = W)))
我收到以下错误:
Error: Problem with `mutate()` input `fit`.
x missing or negative weights not allowed
ℹ Input `fit` is `map(data, ~lm(Y ~ 1, data = .x, weights = W))`.
ℹ The error occurred in group 1: X = "a".
Run `rlang::last_error()` to see where the error occurred.
我哪里错了?
(免责声明:我是 tidyverse 的新手,所以我可能会做一些愚蠢的事情)
【问题讨论】: