任何人都可以帮我写一个R数据帧作为SAS数据集吗?

时间:2011-03-29 17:57:36

标签: r sas dataset

在R中,我使用了外部库中的 write.foreign()函数,以便将数据帧写为SAS数据集。

write.foreign(df = test.df, datafile = 'test.sas7bdat', codefile = 'test.txt', package = "SAS")

写入SAS数据文件,但当我尝试在SAS Viewer 9.1(Windows XP)中打开它时,收到以下消息 - “不支持SAS数据集文件格式”。

注意:我通常不熟悉SAS,所以如果有一个常规SAS用户知道的答案,请原谅我的无知。

4 个答案:

答案 0 :(得分:9)

带有选项write.foreign

package="SAS"实际上写出了一个逗号分隔的文本文件,然后创建一个带有SAS语句的脚本文件来读取它。您必须运行SAS并提交脚本以转换将文本文件转换为SAS数据集。你的电话应该更像是

write.foreign(df=test.df, datafile="test.csv", codefile="test.sas", package="SAS")

请注意不同的扩展名。此外,write.foreign将因子变量写为数字变量,其格式控制其外观 - 即因子的R定义。如果您只想要字符表示,则必须在导出之前通过as.character转换因子。

答案 1 :(得分:8)

我也不是SAS用户,但之前我使用过write.xport()并且工作正常。我粗略的理解是有两种类型的SAS文件,内部文件和XPORT文件。 XPORT是那些在不同版本,架构等之间更兼容的那些。

答案 2 :(得分:0)

您可以使用SAS轻松完成:只需使用SAS / IML Studio进行SAS / IML(proc iml)或IMLPlus(面向对象版本)测试。

看到这个: http://support.sas.com/documentation/cdl/en/imlsstat/63827/HTML/default/viewer.htm#imlsstat_statr_sect004.htm

或免费下载SAS / IML Studio: http://www.sas.com/apps/demosdownloads/92_SDL_sysdep.jsp?packageID=000721 此版本的SAS / IML Studio提供了与R语言接口的功能。

答案 3 :(得分:0)

这是对 Hong Ooi 回答的编辑。

在 R 中:

library(foreign)

write.foreign(df=test.df, datafile="test.csv", codefile="test.sas", package="SAS")

在 SAS 中:

上传 test.csv 和 test.sas 文件。打开 test.sas。您可能需要编辑从 write.foreign 函数输出的 test.sas 代码。对我有用的是更新 INFILE 行以包含图书馆/位置: "/home/kristenmae0/test.csv"