2017-07-28 40 views
0

我需要重命名數據集中的數百個變量,並且正在尋找最有效的方法。當導入原始數據時,SAS生成通用變量名稱,如「VarX」,而R中只是「VX」。我的公司正在從SAS轉移到R,舊的SAS代碼看起來像這樣rename var23-var150=NRx1-NRx128;這會將「var23」重命名爲「NRx1」,然後將「var24」重命名爲「NRx2」,依此類推。這在SAS中是非常有效的速記。我知道我可以使用類似names(data)[x:y] = c("NRx1","NRx"2,etc)的內容從列x到列y中讀取,並重命名每個變量。這意味着我必須寫出所有NRx變量,這感覺像是浪費時間。在R中依次重命名多個變量

Theres也是NRx之後的另一組變量,爲此SAS代碼看起來像這樣rename var151-var278=TRx1-TRx128;。總而言之,我必須重命名250個變量,並且我需要一種有效的方式來編寫此代碼。我對R來說很新,所以對於任何提示和快捷鍵都非常感謝。在此先感謝您的幫助!

+3

您可以使用'paste0':'names(data)[x:y] = paste0(「NRx」,1:128)''。 – lmo

+0

假設這些變量存儲相同類型的數據並且是相關的,那麼您應該重新構造長格式而不是在列名稱中編碼數據。本文討論了在R中運行良好的格式,與SQL很相似https://www.jstatsoft.org/article/view/v059i10 – Frank

回答

1

我覺得你最初的方法工作得很好,而不是鍵入所有的新名字了,只需要創建一個新的期望名稱的簡單向量:

names(data)[x:y] = paste0("NRx", 1:128) 

您可以輕鬆地修改之間在發生什麼"然後當然最後的數字,以滿足您的需求。 paste0中的0表示變量命名中沒有空格。

+0

完美運行!謝謝。 –