r - 是否可以将 SAS infile 语句转换为 R 代码?

标签 r sas file-io

我对 SAS 的了解不多,我通常在 R 和 Stata 工作。最近我从巴西政府下载了一个公开可用的数据集,出于某种原因,他们以原始格式提供了它,并使用 SAS 脚本读取它:

DATA DOM (COMPRESS = YES);
INFILE "...¥T_DOMICILIO_S.txt" LRECL = 164 MISSOVER;     

INPUT  @001 TIPO_REG    $2.   /* TIPO DE REGISTRO  */
       @003 COD_UF      $2.   /* CモDIGO DA UF      */         
       @005 NUM_SEQ     $3.   /* NレMERO SEQUENCIAL */
       @008 NUM_DV      $1.   /* DV DO SEQUENCIAL  */                

…Etc etc…

RUN;

是否有可能“将此语句翻译成 r 的等效项?如果是这样,我应该寻找哪个函数?

最佳答案

有一个应用程序!嗯,一个 R 包,无论如何,SAScii ,由不屈不挠的安东尼·达米科 (Anthony Damico) 带给您。它有两个函数:parse.SASciiread.SAScii。我在 US gummint CDC 文件上使用它取得了巨大成功。

install.packages("SAScii")
library(SAScii)

> parse.SAScii("test.sas")
   varname width char divisor
1 TIPO_REG     2 TRUE       1
2   COD_UF     2 TRUE       1
3  NUM_SEQ     3 TRUE       1
4   NUM_DV     1 TRUE       1
Warning message:
In readLines(sas_ri) : incomplete final line found on 'test.sas'

-- 然后您将需要在第二步中使用 read.SAScii,但您没有为该测试提供合适的测试文件。

输入文件“test.sas”是:

DATA DOM (COMPRESS = YES);
INFILE "...¥T_DOMICILIO_S.txt" LRECL = 164 MISSOVER;     

INPUT  @001 TIPO_REG    $2.   /* TIPO DE REGISTRO  */
       @003 COD_UF      $2.   /* CモDIGO DA UF      */         
       @005 NUM_SEQ     $3.   /* NレMERO SEQUENCIAL */
       @008 NUM_DV      $1.   /* DV DO SEQUENCIAL  */                

RUN;

如果您查看 "twotorials" on Youtube by Anthony Damico或转到 his website你可以明白为什么我用了“不屈不挠”这个词。

关于r - 是否可以将 SAS infile 语句转换为 R 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23505908/

相关文章:

r - 将基本 r 图保存为可以在多图中绘制的对象

c++ - 在 Eclipse/StatET 中编写包含 C++ 代码的 R 包

r - 根据 12 小时内的时间数据生成机器利用率图表

php - 使用 php 访问文本文件?

c - 如何同步文件移动到存储?

r - 在 R 中寻找数据帧的增长

python-3.x - SASpy file_delete方法

sas - 告诉 SAS 不要产生科学记数法

sas - 从 SAS DI 中的表导出数据有哪些方法?

c - printf 打印不正确