【问题标题】:Data always gets truncated in SAS Proc Import (CSV)SAS Proc Import (CSV) 中的数据总是被截断
【发布时间】:2016-02-11 13:04:29
【问题描述】:

我想读入一堆 CSV 文件。例如,这个(movies_user.cleaned.csv)包含 2 个变量:uid(用户 ID)和电影名称。因为 SAS 只读取前 20 行来猜测字符串的长度,所以我的数据会被截断。 (“哈利波特”经常换成“哈利波特”等等。)

我知道我可以在我的代码中使用 guessingrows=32767(32767 是可以使用的最大值)让 SAS 检查前 32767 行,但我认为这不足以确保不会截断。我的一些 CSV 文件比这大得多。

这是我使用的代码:

proc import datafile="H:\FBDATA_CLEANED\facebookdata2\movies_user.cleaned.csv"
 out=thesis.activities2
 dbms=csv
 replace;
 getnames=yes;

run;

你们能帮帮我吗?谢谢!

【问题讨论】:

    标签: string csv sas truncation


    【解决方案1】:

    手动运行PROC IMPORT。在日志中,您将看到它生成的DATA STEP 代码。

    复制该代码。

    PROC IMPORT 替换为DATA STEP

    编辑INFORMATFORMAT 语句的大小,使字段足够大。

    继续使用DATA STEP 代码。

    【讨论】:

    • 您也可以在导入后打开一个新的编辑器窗口并按F4,这将召回上次提交的代码。保存从日志中复制并删除行号
    • 同意,除非他使用企业指南,否则你不能。除非我错过了该功能(除非必须,否则我不会使用 EG)。
    • 我不知道,但是我已经8年没用EG了!
    • 在日志中选择代码时按住 Shift 键可以避开行号。
    • 使用这种方法,是不是必须事先知道一个变量需要多少字节?
    猜你喜欢
    • 2023-04-08
    • 2011-07-30
    • 1970-01-01
    • 2023-01-29
    • 2017-11-30
    • 1970-01-01
    • 1970-01-01
    • 2018-11-21
    • 1970-01-01
    相关资源
    最近更新 更多