R SAS是否仍然可以读取或创建{.dat固定列ascii数据文件、.SAS语法文件}的组合,或者它是否已过时?

R SAS是否仍然可以读取或创建{.dat固定列ascii数据文件、.SAS语法文件}的组合,或者它是否已过时?,r,sas,R,Sas,在过去,我使用R中优秀的SAScii包来读取这种类型的数据:{.dat固定列数据文件+相应的.sas语法文件}。我想说得非常准确,因为像SAS文件这样的短语有着无尽的歧义。这些.dat文件只包含整数,.sas文件指定解析列的方式以及整数表示实际数据中值的方式。此功能有时称为代码本。我从明尼苏达州人口中心的IPUMS等地找到了这种格式的非常好的数据,即以文件{.dat、.sas}对的形式,并建立了许多工具,使用R和SAScii对其进行分析 现在我可以访问SAS本身,但仍然希望重新使用我的一些工具和

在过去,我使用R中优秀的SAScii包来读取这种类型的数据:{.dat固定列数据文件+相应的.sas语法文件}。我想说得非常准确,因为像SAS文件这样的短语有着无尽的歧义。这些.dat文件只包含整数,.sas文件指定解析列的方式以及整数表示实际数据中值的方式。此功能有时称为代码本。我从明尼苏达州人口中心的IPUMS等地找到了这种格式的非常好的数据,即以文件{.dat、.sas}对的形式,并建立了许多工具,使用R和SAScii对其进行分析

现在我可以访问SAS本身,但仍然希望重新使用我的一些工具和技术。但是,我在SAS中找不到类似{fixed column data in.dat,syntax file in.SAS}这样的数据的引用。在SAS中,该格式是否已被SAS7BDAT格式完全取代?或者{.dat、.sas}格式从未在sas中使用过??我问的原因是,现在我可以访问SAS和SAS7BDAT格式的大量数据,我希望能够将其中一些导出为{.dat、.SAS}格式,以便与我自己的工具一起使用


非常感谢,干杯-Ed

我不认为这是SAS内置的功能。然而,您可以非常轻松地编写这样一个程序

首先,Chris Hemidinger写了一些基本上可以做到这一点的东西,它创建了数据线,而不是.dat文件,但是如果您知道.NET,那么修改和/或修改R模块以接受它应该不会太难。这是讨论和可用的。这篇文章的标题是将数据集转换为数据步骤程序。这大致相当于SQL Server任务,该任务从表中创建创建表代码。这只适用于《企业指南》,尽管您应该能够在独立的.NET程序中执行大致相同的操作

其次,您可以在Base SAS中轻松编写类似的内容。创建数据线很简单,可以通过多种方式写入文件

例如,对于CSV,您可以这样做

ods csv file="c:\temp\mydata.csv";
proc print data=mydata;
run;
ods csv close;

如果您要编写一个平面文件,那么最好先生成input/output.sas,毕竟它可以是几乎相同的代码。您可以查询dictionary.columns来生成代码,包括输入和输出代码。创建一个表,其中包含每个变量的变量名称、长度和格式,然后在数据步骤中对其进行处理,将开始变量向前推进每个变量的长度,使其在最后一个变量完成后移动到下一个位置。如果您需要R项目的格式,则proc format cntlout=将生成一个包含这些格式值转换的数据集,您也可以用您需要的任何格式将其写出。

我不熟悉您描述的格式,但是,您不能使用PROC export从SAS导出到csv,然后将csv读入其他工具吗?我认为您通常不会以这种方式保存数据,但这听起来像是一种导出或导入数据的方法。例如,SPSS会很高兴地做到这一点,R可能也会。sas是一个语法文件,因此您编写的任何程序都将具有该扩展名。它本身并不是过时的,只是它不是通常在内部保存的方式。不过,我不知道SAS通常会生产这种产品,所以我不知道您是否可以在不亲自编写的情况下从SAS中获得它。SPSS或其他东西通常会创建此文件以导入SAS。