【问题标题】:Save column descriptions when exporting SAS dataset to CSV将 SAS 数据集导出为 CSV 时保存列描述
【发布时间】:2015-01-16 03:52:00
【问题描述】:

我收到了 SAS 数据,我想将其导出为 CSV,以便我可以使用 R 对其进行分析。我从未使用过 SAS,但我找到了Efficiently convert a SAS dataset into a CSV,它解释了如何使用转换为 CSV代码如下:

proc export data=sashelp.class outfile='c:\temp\sashelp class.csv' dbms=csv replace; run;

这行得通,但我注意到我最终会在 CSV 中得到我称之为短列名的内容,而当我查看 SAS 中的数据时(即使用 SAS 软件)。

我想以编程方式将这些列描述保存到 txt 文件中,以便我可以将它们读入 R 向量。换句话说,我很高兴在我的 CSV 标题(即我的 CSV 的第一行)中有短列名,但我还想有第二个文件,只有一行,包含较长的列描述。我怎么做?我用谷歌搜索并没有发现任何有用的信息。

举个例子,我在 SAS 中看到的长列描述可能类似于“坦桑尼亚大象的数量”,对应的短列名称为“ElephTanz”。

【问题讨论】:

    标签: r csv sas export-to-csv


    【解决方案1】:

    您可以使用 SAS“字典”库来访问此类信息。以下代码创建了一个表 work.column_labels,它有两列:您看到的“短名称”和您在 SAS 中查看数据时出现的较长标签。 (请注意,sashelp.class 数据恰好没有标记列,此特定示例将第二列为空。)

    proc sql;
        create table work.column_lables as
        select Name,label
        from dictionary.columns
        where libname = 'SASHELP'
            and memname = 'CLASS';
    quit;
    

    然后您可以使用类似于您已有的代码将该表导出到 csv。

    【讨论】:

    • 如果你想要的话,你可以查看 proc transpose 以获得一行,而不是一个包含一列的表。
    • 好点。但是一旦他将它放在 R 中的列表或向量中,它是如何到达那里的可能并不重要。
    猜你喜欢
    • 1970-01-01
    • 2016-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多