在导入的数据上更改SAS中的变量名称

时间:2014-03-21 14:15:24

标签: variables sas renaming

我正在研究一个程序的一部分,该程序旨在标准化某些变量名称。我经常得到类似但不同的变量名称的列表。名字可以是first_name,fname,first等...

我有标准化的逻辑,但我需要有关如何实现它的指导。看起来它应该相当简单。如果variable1的名称是'first_name'或'fname'或'first',则将variable1重命名为First_name。

1 个答案:

答案 0 :(得分:0)

我接近这种方式的方法是将其视为数据转换问题,可能使用格式。

首先,将变量名称放入数据集中。 PROC CONTENTS OUT dictionary.columns可以执行此操作,或者您可以使用预先存在的sashelp.vcolumndata refmts; input start $ label $; start=upcase(start); fmtname='$VarFmt'; datalines; first_Name fname firstName fname f_name fname last_name lname lastName lname l_name lname ;;;; run; proc format cntlin=refmts; quit; ,如下所示。然后对它们(您创建的)应用一种修改名称的格式,修改的任何内容都将用于重命名语句。

首先,在SAS中手动或(更好地)在Excel /其他内容中创建数据集并导入数据集。

WORK.MYDATA

然后导入您的文件,我们假设您将其导入为data need_reformat; set sashelp.vcolumn; where memname='MYDATA' and libname='WORK'; if put(name,$VarFmt.) ne name then do; rename = catx(' ','rename',name,'=',put(name,$varfmt.),';'); output; end; run; proc sql; select rename into :renamelist separated by ' ' from need_reformat; quit; data want; set work.mydata; &renamelist.; run; 。现在我们将看看是否有任何可重新格式化的名称。这是未经测试的,因此可能会在一两个地方语法关闭,但应该说明如何处理它。

{{1}}