我正在開發和優化使用lm()函數和隨後的step()函數進行優化的線性模型。我通過使用0和1的隨機生成器(每個有50%的機會)向我的數據框添加了一個變量。我使用這個變量將數據框分成一個訓練集和一個驗證集。如果一個記錄沒有分配給訓練集,它將被分配到驗證集。通過使用這些子集,我可以估計模型的擬合程度(通過對驗證集中的記錄使用預測函數並將它們與原始值進行比較)。我對優化模型的係數以及預測和實際結果分佈之間的KS檢驗結果感興趣。根據循環中的循環編號生成數據框的變量名稱R
我所有的代碼工作正常,但是當我想測試我的模型是否對我選擇的子集敏感時,我遇到了一些問題。要做到這一點,我想創建一個for(我在1:10)循環,每次使用不同的隨機子集。這對我來說是一個很大的挑戰(我以前從未在R中使用過for循環)。
這裏的問題(當然實際上有很多問題,但這裏是其中之一):
我想,這對於在一個獨特的名字每次循環的運行獨立dataframes(例如:RUN1, Run2,Run3)。我已經能夠使用粘貼((「Run」,1:10,sep =「」)創建一個帶有不同字符串的變量,但是這只是給你一個字符串列表。我如何使用這些字符串作爲我的子集)的數據幀?
我期望遇到的另一個問題: 然後,我想使用每個運行的擬合係數,並將它們導出到Excel通過使用coef(函數),我已經能夠檢索係數,但是由於優化算法的原因,模型中包含的係數數量可能會發生變化,這幾乎肯定會給我帶來一些麻煩,將它們粘貼到同一個數據幀中,對此有何想法?
感謝您的幫助。
一個更簡單的替代方案甚至可以是在你的循環中創建名稱,使用'assign(paste(「run」,i,sep =「」),d.frame)'。這樣可以避免任何問題,如果您決定更改運行次數,但忘記隨時隨地更改號碼。 – Edward 2012-07-24 19:58:03
感謝您快速回復我 – 2012-07-24 20:11:44
事實上,我設法同時解決了第一個問題和第二個問題(無需創建10個不同的數據框)。我所做的是將不同運行的係數導出到一個數據幀,然後將該數據幀合併到空數據幀中(如第一次運行),如下所示: – 2012-07-25 15:04:36