【问题标题】:sas how to read in this raw data filesas 如何读入这个原始数据文件
【发布时间】:2013-10-10 04:39:57
【问题描述】:

我有一个这样的原始数据文件:

JamesBrownSenior
AshleyPinkJunior

第一列是名称。第二个是颜色标签。 .. 但是对于每一列,观察长度各不相同。

我试过了

data ct_11;
 infile '';
 length Name $ 10 Tag $ 10 Title $ 10;
 input Name $ Tag $ Title $;
run;

没有用。我想我错过了一些选择。

【问题讨论】:

  • 如果您可以确定每列的值都以大写字母开头并且其中没有其他大写字母,我会跳转到正则表达式。即,将数据作为一个变量读入并应用正则表达式将其拆分为您需要的 3 个部分。顺便说一句,我假设您出于某种原因混淆了您的 infile 语句,因为它不正确。

标签: import sas


【解决方案1】:

如果没有分隔符,则必须将其作为单个变量读取,然后根据规则将其拆分。在您的情况下,您可以使用正则表达式添加分隔符,然后使用扫描函数将单词写入不同的变量。

data ct_11 (keep=name tag title);
 infile 'z:\nametagtitle.txt';
 length line $120 name tag title $40;
 input line $;
 dlmline = prxchange('s/([A-Z]{1}[a-z]*)([A-Z]{1}[a-z]*)([A-Z]{1}[a-z]*)/$1 $2 $3/',-1,line);
 name = scan(dlmLine,1);
 tag = scan(dlmline,2);
 title = scan(dlmline,3);
run;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-15
    • 1970-01-01
    • 1970-01-01
    • 2011-12-24
    • 2022-01-20
    • 2015-02-26
    • 1970-01-01
    相关资源
    最近更新 更多