如何在 lm 函数中使用具有某些条件的多个列的子集?

问题描述 投票:0回答:1

完全新手在这里。!我想研究政党认同对问题态度的影响。我正在使用大型民意调查数据(2020 年民主检查)text。我的回归函数如下:

mod1 <- lm(dc20_pos_jobs ~ dc20_party_id + dc20_education, data, 
           subset = ("dc20_pos_jobs" < 5 && "dc20_party_id" != c("6","7","8"))

我似乎无法让子集工作,尽管我没有收到任何错误。以下是我的子集中需要的规格:

  1. dc20_pos_jobs:使用所有值但不要使用5。它是一个序数变量(1、2、3、4、5)
  2. dc20_party_id:使用所有值但不要使用 6、7 和 8。它是一个名义变量(1 到 8)

如果可能的话(但这在很大程度上超出了我的理解范围)

  1. 每次dc20_party_id有一定值时,在lm中添加另一个特定变量。例如: dc20_party_id 等于 1?在 lm 中添加 dc20_party_rating_23 作为控制变量。 dc20_party_id 等于 2?在lm中添加dc20_party_rating_24作为控制变量。 ... 取决于 dc20_party_id 等于 5?在 lm 中添加 dc20_party_rating_24 作为控制变量。

所有不同的 party_ratings 都是从 0 到 100 的区间变量。

我尝试移动参数,不同的运算符......今天刚开始使用 R,这是我使用的第一种编码语言。

谢谢!

r subset lm
1个回答
0
投票

(ps : 你可以在 python 中尝试这个,它更容易进行数据分析:) )

我认为错误在引号中,试试这个:

subset = (dc20_pos_jobs != 5 & !(dc20_party_id %in% c(6, 7, 8)))

它将包括 dc20_pos_jobs 的所有值(5 除外)和 dc20_party_id 的所有值(6、7 和 8 除外)。

© www.soinside.com 2019 - 2024. All rights reserved.