這是一個奇怪的請求,但我有一個特定的需求,我試圖解決。R - 手動更改列號位置
讓我們假裝我有一個50列的數據框。每列的列號(或索引)將分別爲1:50。有沒有一種方法可以爲每個50分配新的列號?假設我想讓第一列的列號是187.這可能嗎?
我有一個預測模型,它在構建時記住了用於構建模型的每個變量的列位置,而不是變量名稱。在我的原始數據集中,我有1,559個變量來構建模型,但只有50個被選爲最終模型的一部分。該模型記住每個變量位置作爲1,559的函數,但是當我去評分新數據時,它正在尋找1559個變量,而不僅僅是我帶入我的得分環境的50個變量。
我已經保存了每個變量的原始位置編號,所以我希望我可以將列編號分配給只有50個變量的數據集。我有一個解決方法,我用1559列構建一個大的空數據框,然後將數據放入正確的列#然後對數據進行評分,但在這種情況下,我有300萬條記錄要評分,而我沒有足夠的RAM建立一個3M行,1559列數據幀。
在理論上並沒有什麼東西做的,比如阻止你, 'name(mtcars)[1] < - 「187」'並通過'mtcars [,「187」]提取該列,但這是不是數字,而是字符串。 –
@ WeihuangWong是的,我明白這將改變列的名稱,但不更新實際的列索引號。也許它不可能告訴R列索引#是它實際上不是。 –