亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將變量向量傳遞給lm()公式

將變量向量傳遞給lm()公式

守著星空守著你 2019-12-27 10:03:24
我試圖使我的代碼片段自動化,以使編程變得不再那么乏味?;旧希以噲Dfastbw()在rms包中使用逐步選擇變量。我想將選擇的變量列表傳遞fastbw()到公式中y ~ x1+x2+x3,因為“ x1”“ x2”“ x3”是選擇的變量列表fastbw()這是我嘗試但無法正常工作的代碼olsOAW0.r060 <- ols(roll_pct~byoy+trans_YoY+change18m,                     subset= helper=="POPNOAW0_r060",                     na.action = na.exclude,                     data = modelready)OAW0 <- fastbw(olsOAW0.r060, rule="p", type="residual", sls= 0.05)vec <- as.vector(OAW0$names.kept, mode="any")b <- paste(vec, sep ="+") ##I even tried b <- paste(OAW0$names.kept, sep="+")bestp.OAW0.r060 <- lm(roll_pct ~ b ,                       data = modelready,                       subset = helper =="POPNOAW0_r060",                          na.action = na.exclude)我是R語言的新手,仍然沒有走過陡峭的學習曲線,因此對明顯的編程失誤表示歉意。
查看完整描述

3 回答

?
侃侃無極

TA貢獻2051條經驗 獲得超10個贊

你快到了。你只需要paste在整個配方一起,像這樣:


paste("roll_pct ~ ",b,sep = "")

使用將其強制轉換為實際公式as.formula,然后將其傳遞給lm。從技術上講,我認為lm可以強制字符串本身,但是通常自己更強制。(某些期望公式的函數不會為您提供強制性,其他函數則可以。)


查看完整回答
反對 回復 2019-12-27
?
ITMISS

TA貢獻1871條經驗 獲得超8個贊

我今天遇到了類似的問題,如果您想使其更加通用,甚至不需要固定的類名,則可以使用


frmla <- as.formula(paste(colnames(modelready)[1], paste(colnames(modelready)[2:ncol(modelready)], sep = "", 

                              collapse = " + "), sep = " ~ "))

假定您在第一列中具有類變量或因變量,但索引可以很容易地切換到最后一列,如下所示:


frmla <- as.formula(paste(colnames(modelready)[ncol(modelready)], paste(colnames(modelready)[1:(ncol(modelready)-1)], sep = "", 

                              collapse = " + "), sep = " ~ "))

然后繼續lm使用:


bestp.OAW0.r060 <- lm(frmla , data = modelready, ... )


查看完整回答
反對 回復 2019-12-27
  • 3 回答
  • 0 關注
  • 818 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號