Import sas导入数据以{}分隔,以{}分隔;
我有一个用分号分隔的csv文件,但我有一个内有分号的字段。它由{}分隔 该字段的一个示例(其名称为“邻居”)是: {“T”:0,N:“亚特兰蒂斯的贾迪姆”,“I”:0} 但在某些方面,我可以: {“T”:0,“I”:0,“N”:“JD”;“Sorcaba parque”} 所以当我跑步的时候Import sas导入数据以{}分隔,以{}分隔;,import,sas,delimiter,proc,curly-braces,Import,Sas,Delimiter,Proc,Curly Braces,我有一个用分号分隔的csv文件,但我有一个内有分号的字段。它由{}分隔 该字段的一个示例(其名称为“邻居”)是: {“T”:0,N:“亚特兰蒂斯的贾迪姆”,“I”:0} 但在某些方面,我可以: {“T”:0,“I”:0,“N”:“JD”;“Sorcaba parque”} 所以当我跑步的时候 proc import datafile='D:\nnl_muest_result_bs.csv' dbms=dlm out=muest_Re.I03_nnl_result_bs
proc import
datafile='D:\nnl_muest_result_bs.csv'
dbms=dlm
out=muest_Re.I03_nnl_result_bs;
delimiter=';';
guessingrows=32767;
run;
它以分号分隔,这对于其他字段是可以的,但在这个字段中不是
我如何告诉SAS使用分号进行拆分,而忽略大括号{}中的分号
谢谢我还没有发现任何与proc import相关的有用信息,但是您可以使用更手动的方法来解决这个问题。 我创建了一些测试数据:
a;b;n{c;d}e;g
aa;bb;mm{cc;dd;ee}ff;h
下面是代码,其中注释部分必须根据变量进行修改,如记录的长度(可能需要在infle语句中添加lrecl=和firstobs=2)
谢谢你的工作。。。我也找不到自动的东西
data test;
infile "C:\Dati\EsempiSAS\graffe.txt" pad missover;
input @1 record $CHAR100.;
piece1=substr(record,1,indexc(record,"{")-1);
piece2=substr(record,indexc(record,"{")+1,(indexc(record,"}"))-(indexc(record,"{")+1));
piece3=substr(record,indexc(record,"}")+1);
/*
var1=scan(piece1,1,";");
var2=scan(piece1,2,";");
var3=scan(piece1,3,";");
var4=piece2;
var5=scan(piece3,1,";");
var6=scan(piece3,2,";");
*/
run;