pphepp 2024-09-29 11:53 采纳率: 0%
浏览 0

sas如何将字符串转成数字

259 /合并数据集,匹配/
260 data xgjdc.zb2;
261 merge xgjdc.zb1 xgjdc.fynx1;
ERROR: 变量 ID 已定义为字符型和数值型。
262 by id;
263 run;

NOTE: 由于出错,SAS 系统停止处理该步。
WARNING: 数据集 XGJDC.ZB2 可能不完整。该步停止时,共有 0 个观测和 123 个变量。
WARNING: 数据集 XGJDC.ZB2 由于该步已停止,而没有被替换。
NOTE: “DATA 语句”所用时间(总处理时间):
实际时间 0.00 秒
CPU 时间 0.00 秒

  • 写回答

3条回答 默认 最新

  • 关注

    上午好☀️☀️☀️️
    本答案参考ChatGPT-3.5

    这个问题是关于SAS编程的,其中涉及到两个数据集,一个名为XGJDC.ZB2,另一个名为XGJDC.ZB1。SAS命令行无法直接将字符串转换为数字,因为这个过程涉及到一些复杂的数学运算,这需要使用到特殊的函数或者编程语言。

    以下是一些可能的解决方案:

    1. 尝试使用SAS的函数 CONCATENATE 来将两个字符串连接起来,然后通过函数 SUBSTRING_INDEX 来提取字符串中的数字部分:
    %let str1 = '123';
    %let str2 = 'abc';
    
    result = CONCATENATE(str1, SUBSTRING_INDEX(str1, ',', 1));
    result = CONCATENATE(result, SUBSTRING_INDEX(str2, ',', 1));
    
    1. 如果问题出在一个数据集上,那么可能是原始数据中存在非数值类型的变量。在这种情况下,你需要先将所有变量都转换为数值类型。这可以通过使用函数 REGEXREPLACE 来完成:
    data is (date regexp);
    
    %let str1 = '123';
    %let str2 = 'abc';
    
    result = REGEXPREPLACE(str1, '[^0-9]', '');
    result = REGEXPREPLACE(str2, '[^0-9]', '');
    
    result =有信心(字符串视为数值) || ('[' || [Strsplit('data', ',') - {4}]) || ']');
    

    这些解决方案只是针对当前问题的初步尝试,具体的操作方式可能会因你的环境和需求有所不同。如果你还有其他的问题或困惑,欢迎继续提问。

    评论

报告相同问题?

问题事件

  • 创建了问题 9月29日

悬赏问题

  • ¥15 Windows Script Host 无法找到脚本文件"C:\ProgramData\Player800\Cotrl.vbs”
  • ¥15 matlab自定义损失函数
  • ¥15 35114 SVAC视频验签的问题
  • ¥15 impedancepy
  • ¥15 求往届大挑得奖作品(ppt…)
  • ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
  • ¥50 浦育平台scratch图形化编程
  • ¥20 求这个的原理图 只要原理图
  • ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
  • ¥20 微信的店铺小程序如何修改背景图