在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用户知道的答案,请原谅我的无知。
答案 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(面向对象版本)测试。
或免费下载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"