我正在导入一个带有行和列分隔符的平面.txt文件。问题是行分隔符被用来减少文件大小,所以经常会跳过其他列。另一个问题是最长字符的长度未知,如果这个字符串被截断,则失去分隔符,整个结构将崩溃。
我正面临的问题的显式示例包括:
.txt文件
我在尝试导入这些数据时遇到了很多问题,原因如下:
非常感谢您的经验和见解。
我正面临的问题的显式示例包括:
.txt文件
Var1'~'Var2'~'Var3'~'Var4'~'Var5'~'Var6'#@#@'
1'~''#@#@'
This is going to be a really long string as an example of a situation where the long string is very large and so the truncated string does not indicate a delimiter and we lose data '#@#@'
1'~' 2'~' 3'~' 4'~' 5'~' 6'#@#@'
1'~' 2'~' 3'~''#@#@'
我在尝试导入这些数据时遇到了很多问题,原因如下:
字符变量长度过长会使导入过程非常耗时,而我们不知道最长的字符变量长度,因此每次迭代都需要更多时间。
当结构意味着下一行可以在填充完所有列之前被标志时,我还没有找到处理列分隔符和行分隔符的方法,也就是说不能仅仅为行分隔符增加一个额外的列并删除它。
我已经尝试的 SAS 代码:
data want;
infile "file-location" dlmstr = "#@#@" dsd recfm = F lrecl=10000000000;
informat var $200.
input var $ @@;
run;
非常感谢您的经验和见解。
LIST
命令查看文件。因此,要读取完整文件并查看最大行长度以及列出前5行,请运行以下代码:data _null_; infile "file" lrecl=1M; input; if _n_<=5 then list; run;
- Tom