楼主: Undernatural
1474 6

[实际应用] sas 字符串提取 [推广有奖]

  • 1关注
  • 0粉丝

本科生

76%

还不是VIP/贵宾

-

威望
0
论坛币
256 个
通用积分
2.8669
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
422 点
帖子
36
精华
0
在线时间
161 小时
注册时间
2019-7-10
最后登录
2024-4-19

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
数据集有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取出“ ”里面的字段去重后成为一列?求大神指教。。。。
二维码

扫码加我 拉你入群

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

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

关键词:字符串 score apply Total Execs

回帖推荐

缘oO来如此0o 发表于6楼  查看完整内容

把你的数据保存了个文件,每条观测一行。 然后上网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); ...
沙发
18920312537 发表于 2020-12-25 14:16:29 |只看作者 |坛友微信交流群
太高深一定好好学习了,

使用道具

藤椅
Undernatural 发表于 2020-12-25 14:51:25 |只看作者 |坛友微信交流群
18920312537 发表于 2020-12-25 14:16
太高深一定好好学习了,
希望有大神指导一下,试了好久,取不出来

使用道具

板凳
孤单的我们 发表于 2020-12-28 11:48:08 |只看作者 |坛友微信交流群
正则表达式,或者根据 逗号 数量来做循环scan一下也可以

使用道具

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

使用道具

地板
缘oO来如此0o 发表于 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

使用道具

7
Undernatural 发表于 2021-1-4 09:06:34 |只看作者 |坛友微信交流群
缘oO来如此0o 发表于 2020-12-31 17:32
把你的数据保存了个文件,每条观测一行。
然后上网copy了一段代码。
谢谢,非常有帮助

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-30 16:07