我对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的等效语句?如果是这样,我应该找哪个功能?
答案 0 :(得分:11)
有一个应用程序!无论如何,一个R包,SAScii
,由不屈不挠的安东尼达米科带给你。它有两个功能:parse.SAScii
和read.SAScii
。我在美国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,您就会明白为什么我使用了“#34; indomitable"”这个词。
答案 1 :(得分:9)
对你问题的其他回答更好,因为它们更为一般。但是你要特别询问ibge的pesquisa或者家庭...我已经编写了代码,将2002-2003和2008-2009的所有直接导入R而不再赘述。 :)只需按照顶部的说明操作,运行下载脚本,所有内容都将正确加载到R中。
https://github.com/ajdamico/usgsd/tree/master/Pesquisa%20de%20Orcamentos%20Familiares
http://www.asdfree.com/search/label/pesquisa%20de%20orcamentos%20familiares%20%28pof%29
答案 2 :(得分:5)
SAS有比R更多的输入选项,因此有时可能难以进行直接翻译;但您可以考虑查看the SAScii package来帮助您创建对read.fwf
的调用