import - SAS 从一行读取多条记录,无需换行 CRLF

标签 import sas linefeed

我只有 1 行没有换行符(CRLF CRLF),换行符是 4 个字符的字符串,在这个例子中是“@A$3”我现在不需要 dlm,我需要从外部文件导入它(/files/Example.txt)

JOSH 30JUL1984 1011 SPANISH@A$3RACHEL 29OCT1986 1013 MATH@A$3JOHNATHAN 05JAN1985 1015 chemistry

我需要将此行分成 3 行:
JOSH 30JUL1984 1011 SPANISH
RACHEL 29OCT1986 1013 MATH
JOHNATHAN 05JAN1985 1015 chemistry

我如何在 SAS 中做到这一点?

*补充:您的解决方案正在使用此示例,但我有一个问题,一行包含超过该行允许的最大长度(32,767 字节),

例如,上面练习中的这一行包含 5,000 条记录。

是否可以?

最佳答案

使用 DLMSTR= infile 上的选项语句——这将指定“@A$3”作为分隔符。然后使用 @@在输入语句上告诉 SAS 在同一行上查找更多记录。

data test;
infile "/files/Example.txt" dsd dlmstr='@A$3';
informat var $255.;
input var $ @@;
run;

在您的示例中,您将获得一个包含 3 个记录的数据集,其中 1 个变量包含您要查找的字符串。

根据需要调整 var 的长度。

关于import - SAS 从一行读取多条记录,无需换行 CRLF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20817759/

相关文章:

eclipse - 导入现有项目

mysql - 如何将 MDB (Access) 文件转换为 MySQL(或纯 SQL 文件)?

sas - 高效读取 SAS 输入文件的特定行

format - SAS-从带有科学计数法的数字的csv文件导入时如何保留实际数字

sas - 如何调用 SAS 中另一个变量下的字符串变量?

python - '\n' == 'posix' , '\r\n' == 'nt' (python) 对吗?

java - 按需类型导入声明导入什么?

eclipse - 在 Eclipse 中将换行符从 CRLF 更改为 LF

c++ - 使用 fopen 读取 C++ 中的文本文件,无需换行转换

python - 在python中导入和使用模块