Import sas导入数据以{}分隔,以{}分隔;

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

我有一个用分号分隔的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;
     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;