You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在SAS中从单行长文本变量生成多个目标变量

在SAS中从JSON格式文本提取指定变量的解决方案

针对你提供的JSON格式单行长文本,这里提供三种可行的SAS实现方案,按需选择:

方法一:使用JSONVALUE函数(SAS 9.4M5及以上版本)

利用SAS内置的JSONVALUE函数直接提取指定键的值,代码简洁高效:

/* 假设原始数据集为raw_data,存储目标文本的变量名为json_text */
data extracted_vars;
    set raw_data;
    /* 提取screenW并转为数值型变量 */
    Device_width = input(jsonvalue(json_text, 'screenW'), best12.);
    /* 提取screenH并转为数值型变量 */
    Device_height = input(jsonvalue(json_text, 'screenH'), best12.);
    /* 提取touch的布尔值(保留字符型) */
    Touch = jsonvalue(json_text, 'touch');
    /* 提取OS的字符串值 */
    Device_OS = jsonvalue(json_text, 'OS');
    /* 仅保留需要的变量 */
    keep Device_width Device_height Touch Device_OS;
run;

方法二:使用LIBNAME JSON引擎(SAS 9.4及以上版本)

适合批量处理JSON数据,SAS会自动解析结构生成数据集:

/* 将JSON文本写入临时文件 */
filename temp_json temp;
data _null_;
    set raw_data;
    file temp_json;
    put json_text;
run;

/* 关联JSON引擎到临时文件 */
libname jsonlib json fileref=temp_json;

/* 读取解析后的数据并重命名变量 */
data extracted_vars;
    set jsonlib.root;
    Device_width = screenW;
    Device_height = screenH;
    Touch = touch;
    Device_OS = OS;
    keep Device_width Device_height Touch Device_OS;
run;

/* 清理临时资源 */
libname jsonlib clear;
filename temp_json clear;

方法三:正则表达式提取(兼容低版本SAS)

如果你的SAS版本不支持JSON工具,可通过PRX系列正则函数匹配提取:

data extracted_vars;
    set raw_data;
    /* 提取screenW的数值 */
    prxparse('/"screenW":(\d+)/');
    if prxmatch(_regex_, json_text) then Device_width = input(prxposn(_regex_, 1, json_text), best12.);
    
    /* 提取screenH的数值 */
    prxparse('/"screenH":(\d+)/');
    if prxmatch(_regex_, json_text) then Device_height = input(prxposn(_regex_, 1, json_text), best12.);
    
    /* 提取touch的布尔值 */
    prxparse('/"touch":(true|false)/');
    if prxmatch(_regex_, json_text) then Touch = prxposn(_regex_, 1, json_text);
    
    /* 提取OS的字符串 */
    prxparse('/"OS":"([^"]+)"/');
    if prxmatch(_regex_, json_text) then Device_OS = prxposn(_regex_, 1, json_text);
    
    keep Device_width Device_height Touch Device_OS;
run;

内容的提问来源于stack exchange,提问作者Chirag Vyas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 20:10:19