全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
5677 7
2014-03-21
很初级的问题:从其他格式文档导入sas数据集,但某一变量字符较长,要先定义某一变量长度(如1000),怎么办?!求指教!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2014-3-21 14:25:28
sas中要求变量名不超过8个字符,程序中可以在data步中设置变量长度的,length 字符型变量名 $ 长度。在从别的文件读取数据时先讲数据处理为sas可识别的数据。。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-3-21 16:11:00
1921209223 发表于 2014-3-21 14:25
sas中要求变量名不超过8个字符,程序中可以在data步中设置变量长度的,length 字符型变量名 $ 长度。在从别 ...
length ,不好意思,是我表达不清楚,如图,其实想问怎么增加那Length,好像因为不够长,导入时出现乱码了。。。。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-3-21 17:00:08
你是将什么格式的数据导入到sas中的呢,length与format和informat数值要对应的。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-3-21 17:03:08
1921209223 发表于 2014-3-21 17:00
你是将什么格式的数据导入到sas中的呢,length与format和informat数值要对应的。
CSV格式的
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-3-21 17:15:28
你用编程语句导入试试:


%macro daoru(name) ;                                
PROC IMPORT OUT= WORK.S&name                        
            DATAFILE= "E:\a\&name..csv"            
            DBMS=csv
            REPLACE;                                                         
RUN;
%mend;


data _null_;
        infile " E:\a\&name..csv";
        input str:$100.;
        call execute(compress('daoru('||scan(str,1,'.')||');'));
run;

1.建立导入数据的宏,

2.读入文件,并用call execute语句将l文件中的内容作为宏daoru的参数。

   daoru前面要加百分号.
  这样即可将E:\a文件夹中的CSV格式数据导入到sas中。
我没遇到过你这样的问题。上面是我查的,你可以试试,不要用菜单导入,直接编程导入。或者你把csv格式的文件转化为txt格式或者xls格式都可以。。
或者用
proc import data="文件路径名"
      out=文件名
        dbms=csv replace;
run;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群