我想在 R studio 中应用调查权重进行线性回归。我已经看到可以使用该lm()函数来做到这一点,这使我能够指定我想要使用的权重。然而,也可以使用该函数来执行此svyglm()操作,该函数对调查设计对象中已按所需变量加权的变量进行回归。
从理论上讲,我认为这两个回归模型的结果没有理由不同,而且 beta 估计值是相同的。然而,每个模型中的标准误不同,导致不同的 p 值,从而导致不同的显着性水平。
哪种型号最合适?任何帮助将不胜感激。
这是 R 代码:
dat <- read.csv("https://raw.githubusercontent.com/LucasTremlett/questions/master/questiondata.csv")
model.weighted1 <- lm(DV~IV1+IV2+IV3, data=dat, weights = weight)
summary(model.weighted1)
dat.weighted<- svydesign(ids = ~1, data = dat, weights = dat$weight)
model.weighted2<- svyglm(DV~IV1+IV2+IV3, design=dat.weighted)
summary(model.weighted2)
Run Code Online (Sandbox Code Playgroud) 我有两个清单:
list1<- list(x=c(1,2,3),
y=c(4,5,6))
list1
#$x
#[1] 1 2 3
#$y
#[1] 4 5 6
list2<- list(x=c(1,2,3),
y=c(4,5,6),
z=c(7,8,9))
list2
#$x
#[1] 1 2 3
#$y
#[1] 4 5 6
#$z
#[1] 7 8 9
Run Code Online (Sandbox Code Playgroud)
我正在尝试ifelse()根据列表的长度执行一个语句,如果第二个列表的长度高于第一个列表,则应返回第二个列表。但是,该ifelse()语句仅返回所需列表的第一个元素:
ifelse(length(list1)<length(list2),list2,list1)
# [[1]]
# [1] 1 2 3
Run Code Online (Sandbox Code Playgroud)
为什么会发生这种情况,如何让语句ifelse()返回整个列表?