如何将excel导入getnames=no的sas?
我想指定新名称,以便使用如何将excel导入getnames=no的sas?,sas,Sas,我想指定新名称,以便使用getnames=no属性: data mylib.test; infile "C:\Users\test.xlsx" ; input var1 $ Opened_Date mmddyy8. salary dollar9.2; DBMS=EXCEL ; range="Sheet5$"; getnames=no; mixed=no; scantext=yes; usedate=yes; scantime=yes
getnames=no
属性:
data mylib.test;
infile "C:\Users\test.xlsx" ;
input var1 $ Opened_Date mmddyy8. salary dollar9.2;
DBMS=EXCEL ;
range="Sheet5$";
getnames=no;
mixed=no;
scantext=yes;
usedate=yes;
scantime=yes;
datarow=3;
run;
但这并不意味着什么
PS以下带有
getnames=yes
的代码工作正常。这意味着excel文件没有问题。但是我不想使用yes
我需要getnames=no
在这种情况下,数据步骤没有帮助。实际上,你不能用这种方式导入excel文件
在此之后,您可以创建一个数据步骤,并根据PROC IMPORT最初指定的通用名称,以任何方式重命名内容
另一种类似于数据步方法的方法是libname
access
libname myexcel excel "c:\Usertest.xlsx" getnames=no scantext=yes mixed=no usedate=yes scantime=yes;
然后您可以像这样访问该文件
data test;
set myexcel,'Sheet5$'n;
rename f1=var1 f2=opened_date (...more...);
run;
我倾向于使用PROC IMPORT,因为它更容易为其他人理解,但两者在工作方式上是等效的(PROC IMPORT基本上为您创建了这个libname)。谢谢。这就是我到目前为止一直在使用的。显然,这是唯一正确的方法。如果您真的想使用数据步骤,有
libname
access方法,但在这个特定的示例中,这并不能真正为您节省任何东西-您仍然需要重命名/等变量。
libname myexcel excel "c:\Usertest.xlsx" getnames=no scantext=yes mixed=no usedate=yes scantime=yes;
data test;
set myexcel,'Sheet5$'n;
rename f1=var1 f2=opened_date (...more...);
run;