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

3qpi33ja  于 2023-05-04  发布在  其他
关注(0)|答案(1)|浏览(122)

我想研究一下政党认同对对待问题的态度的影响。我使用的是一个大型的民意调查数据Democracy Checkup 2020。我的回归函数如下:

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的区间变量。
    我试着移动参数,不同的运算符。
oxcyiej7

oxcyiej71#

(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之外的所有值。

相关问题