全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1816 6
2020-12-25
数据集有100多万的观测,只有一个很长($1024.)的字符变量,里面的形式如下:
{
        "applyJoinSitu":0.2993906136,
        "cmfqFpNrAlLv3":2,
        "dminFpAvPsCnt3":1,
        "execStlRate":14.88,
        "finCmlisrAmt":3500.0,
        "finStrisrAmt":-0.549731572,
        "finingTerm":36.0,
        "finingTotalAmt":90000.0,
        "scoreVO":
                {
                        "aliScore":0,
                        "applyNo":4156361,
                        "tdScore":10
                },
        "sumFpNrLnCnt3":0,
        "vegAge":55.0,
        "zmf":610.0
}

如何使用sas取出“ ”里面的字段去重后成为一列?求大神指教。。。。
二维码

扫码加我 拉你入群

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

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

全部回复
2020-12-25 14:16:29
太高深一定好好学习了,
二维码

扫码加我 拉你入群

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

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

2020-12-25 14:51:25
18920312537 发表于 2020-12-25 14:16
太高深一定好好学习了,
希望有大神指导一下,试了好久,取不出来
二维码

扫码加我 拉你入群

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

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

2020-12-28 11:48:08
正则表达式,或者根据 逗号 数量来做循环scan一下也可以
二维码

扫码加我 拉你入群

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

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

2020-12-29 13:59:01
孤单的我们 发表于 2020-12-28 11:48
正则表达式,或者根据 逗号 数量来做循环scan一下也可以
代码能力太差,对于单个字符串还可以,对于所有观测写宏循环提取失败了,没琢磨明白
二维码

扫码加我 拉你入群

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

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

2020-12-31 17:32:26
把你的数据保存了个文件,每条观测一行。
然后上网copy了一段代码。


%macro JSONParse(Filename, varList);
data JSON (keep=&varlist);
    infile &FILENAME ;
    input;
    ExpressionID = prxparse('/{(.*?)}/');
    jsontext = _INFILE_;
    start = 1;
    stop = length(jsontext);

    array vlist $200 &Varlist;

   call prxnext(ExpressionID, start, stop, jsontext, position, length);

   put position length;

    do while (position > 0);
        newpos = position + 1;
        record = substr(jsontext, newpos, newlen);
                put newpos newlen
        i=0;   
        do over vlist;
            i+1;

            vlist = strip(compress(scan(scan( record, i, ",{"), 2, ":"), '{"}'));
        end;
        output;
        call prxnext(ExpressionID, start, stop, jsontext, position, length);
    end;

run;
%mend;

options  mlogic mprint symbolgen;

FILENAME TEST "F:/SASfiles/first.json";
%JSONParse(TEST, applyJoinSitu
cmfqFpNrAlLv3
dminFpAvPsCnt3
execStlRate
finCmlisrAmt
finStrisrAmt
finingTerm
finingTotalAmt
scoreVO
aliScore
applyNo
tdScore
sumFpNrLnCnt3
vegAge
zm);
附件列表
人大1.png

原图尺寸 105.63 KB

人大1.png

二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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