2017-07-28 39 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

完美运行!谢谢。 –