我试图使用rms :: lrm函数来拟合逻辑回归模型,我将rcs函数应用于一个变量,并使用数据集中的其余变量。
例如,我想执行以下操作:
fit = rms::lrm(y~ rcs(a) + ., data=myData, x=TRUE, y=TRUE)
但是,这会返回以下错误:
if(!length(fname)||!any(fname == zname)){:缺失值时出错 需要TRUE / FALSE
我已经尝试了几种不同的公式排列,但没有别的产生错误。
以下示例可以正常运行:
fit = rms::lrm(y~ rcs(a), data=myData, x=TRUE, y=TRUE)
fit = rms::lrm(y~ ., data=myData, x=TRUE, y=TRUE)
是否有任何方便的方法将rcs()应用于特定变量并仍使用“。”运算符,还是我需要手动输出所有其他变量,因为我使用的是rcs()?
谢谢!
答案 0 :(得分:1)
它不使用“。”运算符,但我有时使用粘贴/折叠来生成要包含的变量列表。在你的情况下像这样:
fullformula <- as.formula(paste0('y~rcs(a) + ', paste(setdiff(colnames(data), 'a'), collapse=" + ")))
或作为一行:
id init_cont family description value
1 K S impacteach 1
1 K S impactover 3
1 K S read 2
2 I S impacteach 2
2 I S impactover 4
2 I S read 1
3 K D impacteach 3
3 K D impactover 5
3 K D read 3