0

我正在尝试运行线性模型,但仅限于特定的受访者群体。我在网上找到了示例代码,上面说使用 gapminder 功能来隔离受访者组。在这里,我只想在party 列中包含值为 1 的受访者。我按照我在网上找到的示例代码,

library("tidyverse")
library("gapminder")
dems <- filter(gapminder, 
               + dfp_clean$party == 1)
dem_model <- lm(scale_masc_index ~ ice, data = dems)
summary(dem_model)

但我不断收到此错误

Error: Problem with `filter()` input `..1`.
x Input `..1` must be of size 1704 or 1, not size 17723.
ℹ Input `..1` is `+dfp_clean$party == 1`.

我试着跑步

rlang::last_error()

查看错误发生的位置,但它说的和以前一样。

4

2 回答 2

0

您是否希望您的 dems 数据框包含来自 dfp_clean 数据框的行?如果是这样,那应该是过滤器函数中的第一个参数。

library("tidyverse")
dems <- filter(dpf_clean, party == 1)

filter 函数假定 party 是 dpf_clean 数据帧中的一列(或您作为第一个参数输入的任何内容),因此运行以下代码将返回相同的结果:

library("tidyverse")
dems <- filter(dpf_clean, dpf_clean$party == 1)

如果这不起作用,则可能是您的 dpf_clean 数据框没有可用于过滤行的“party”列。如果您键入:

colnames(dpf_clean) 

您可以获得该数据框中所有列的列表。如果派对出现在该列表中,则代码应该可以工作。

看起来 gapminder 包只包含数据,而不是任何函数,因此您似乎不需要该包来运行这行代码。也许您正在查看的教程正在使用

于 2021-08-05T18:34:45.793 回答
0

您的过滤器功能中的输入并不完全正确。

它应该如下所示:

dems <- filter(gapminder, party == 1)
于 2021-08-05T16:14:20.993 回答