0
我确定这是一个简单的问题,但是我对R的基本理解让我失望。它可能与字符串不等于变量的名称...系数名称在R中不匹配
我试图运行与使用调查包对比度的交互。
se_race4是一个因素变量具有4个类别: “1)非西班牙裔白人”, “2)黑”, “3)西班牙”, “4)其他”
余像下面这样运行的模型:
mod1 <- lm(sysbp ~ pmper10*se_race4 + age_baseline, data=mydata)
然后我看一些对比:
svycontrast(mod1,c("pmper10"=1)
以下命令的工作:
svycontrast(mod1,c("pmper10"=1,"pmper10:se_race42) Black"=1))
svycontrast(mod1,c("pmper10"=1,"pmper10:se_race43) Hispanic"=1))
svycontrast(mod1,c("pmper10"=1,"pmper10:se_race44) Other"=1))
但这并不(即使 'Z' 看起来就像上面的字符串):
for(z in grep("pmper10:se_race4",names(coef(mod1)),value=TRUE)) {
svycontrast(mod1,c("pmper10"=1, z=1))
}
[R给我的错误:
Error in match.names(names(coef(stat)), contrasts) : names not matched
我缺少什么?
编辑: 的names(coef(mod1))
结果:names(c("pmper10"=1, z=1))
[1] "(Intercept)" "pmper10"
[3] "se_race42) Black" "se_race43) Hispanic"
[5] "se_race44) Other" "age_baseline"
[7] "pmper10:se_race42) Black" "pmper10:se_race43) Hispanic"
[9] "pmper10:se_race44) Other"
结果结果的z
[1] "pmper10:se_race44) Other"
这看起来不正确
[1] "pmper10" "z"
!如何让“z”变成z的值?
好了,但我怎么ž匹配?也就是说,如何将z表示的字符串放入向量而不是字母z? – 2012-05-17 19:51:36
你能在这里粘贴'names(coef(mod))'的结果吗?了解你的'grep'命令在做什么会有帮助。但是可能你可以用'z'代替'paste(z)',尽管我没有看到它,所以我不确定。 – 2012-05-17 20:02:33
我编辑了更多细节的问题。谢谢! – 2012-05-17 20:20:24