【问题标题】:SAS INPUT DATA WITH SPECIAL CHARACTERS具有特殊字符的 SAS 输入数据
【发布时间】:2017-01-29 03:30:38
【问题描述】:

我正在尝试将一些 dat 文件(逗号分隔)导入 SAS 大学。但是,一个变量包含特殊字符(例如法语口音)。大部分被替换为�,但也有一些观察存在一些问题。

问题示例:

数据中的原始观察结果如下所示:

Crème Brûlée,105,280

运行以下命令:

DATA BenAndJerrys;
    INFILE '/folders/myfolders/HW3/BenAndJerrys.dat' DLM = ',' DSD MISSOVER;
    INPUT flavor_name :$48. portion_size calories;
RUN;

有这个问题:

flavor_name=Cr�me Br�l�e,105 portion_size=280 calories=

如您所见,part_size 的值 105 与 flavor_name 的值合并,卡路里的值 280 被分配给 part_size。

如何解决这个问题并允许 SAS 导入带有特殊字符的数据?

【问题讨论】:

    标签: database import sas special-characters


    【解决方案1】:

    尝试告诉 SAS 在读取文件时使用什么编码。

    我使用 Windows NOTEPAD 编辑器将您的示例行复制并保存到一个文本文件中。

    %let path=C:\Downloads ;
    data _null_;
      infile "&path\test.txt" dsd encoding=wlatin1;
      length x1-x3 $50 ;
      input x1-x3;
      put (_all_) (=);
    run;
    

    日志中的结果。

    x1=Crème Brûlée x2=105 x3=280
    NOTE: 1 record was read from the infile "C:\Downloads\test.txt".
          The minimum record length was 20.
          The maximum record length was 20.
    

    【讨论】:

    • #Tom : 请问,除了 Translate 之外,是否有一个函数或 Perl 正则表达式来替换表变量中的重音符号?谢谢!
    • @D.O.试试 BASECHAR() 函数。
    猜你喜欢
    • 1970-01-01
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多