R、 如何将数据帧的所有列名放入公式中?
我试图在R、 如何将数据帧的所有列名放入公式中?,r,formula,cox-regression,R,Formula,Cox Regression,我试图在R中对我的数据集应用多元Cox回归分析,如下所示。 特别是,我正在尝试应用以下函数coxph(): 我收到了这个错误信息: Error in model.frame.default(formula = Surv(time, status) ~ featureNames, : variable lengths differ (found for 'featureNames') 有人能帮我吗?谢谢 我在运行Linux Ubuntu18.04.5 LTS的pc上使用R3.6.3版使用
R
中对我的数据集应用多元Cox回归分析,如下所示。
特别是,我正在尝试应用以下函数coxph()
:
我收到了这个错误信息:
Error in model.frame.default(formula = Surv(time, status) ~ featureNames, :
variable lengths differ (found for 'featureNames')
有人能帮我吗?谢谢
我在运行Linux Ubuntu18.04.5 LTS的pc上使用R
3.6.3版使用parse()
,而eval()
featureNames <- paste(colnames(lung), collapse = " + ")
res.cox <- coxph(Surv(time, status) ~ eval(parse(text = featureNames)), data = lung)
featureNames使用重新格式化,首先设置默认公式:
fS <- Surv(time, status) ~ .
如果你想让其他变量都作为预测变量,有一个简单的捷径res.cox如果你必须手工构建,请确保它是一个公式my_公式谢谢@ChuckP。如果我只需要选择要素名称的子集,该怎么办?
featureNames <- paste(colnames(lung), collapse = " + ")
res.cox <- coxph(Surv(time, status) ~ eval(parse(text = featureNames)), data = lung)
fS <- Surv(time, status) ~ .
colnames(lung)
[1] "inst" "time" "status" "age" "sex" "ph.ecog"
[7] "ph.karno" "pat.karno" "meal.cal" "wt.loss"
features = c("ph.karno","age","meal.cal","wt.loss")
fs = reformulate(features, fS[[2]])
coxph(fs, data = lung)
Call:
coxph(formula = fs, data = lung)
coef exp(coef) se(coef) z p
ph.karno -9.152e-03 9.909e-01 7.327e-03 -1.249 0.212
age 1.629e-02 1.016e+00 1.168e-02 1.395 0.163
meal.cal 5.087e-06 1.000e+00 2.391e-04 0.021 0.983
wt.loss -1.057e-03 9.989e-01 6.884e-03 -0.154 0.878
Likelihood ratio test=5.84 on 4 df, p=0.2113
n= 171, number of events= 124
(57 observations deleted due to missingness)