R语言学习

318:R数据集转换成SAS数据集

2024-03-09  本文已影响0人  SASPRO的打工人生活

有些R论坛上的R数据集没有SAS格式的数据集,但是作为SP可能更需要SAS数据集,同时也能进行比对。

对于R数据集,文件格式一般是.RDA或者.RDATA的形式,如果需要转换成SAS数据集,可以使用haven包,它属于tidyverse生态系统的一员。

我要转换的一个数据集叫GBCS,好像是一个关于德国病人肿瘤数据的。

如果没有下载haven包的话,先使用

install.packages("haven")

下载之后记得加载包,这是初学R需要注意的。

library(haven)

注意这时候RStudio可能会报haven只能在R 4.3.3版本之上才存在,这时候你需要升级你的R,可以去官网上下载最新版的R,然后老的R卸载就可以了。

之后就可以用write_sas函数直接将R数据集直接转换成SAS数据集。

但是这个函数的说明也说了这个函数很不稳定,因为SAS数据集可能就一种固定的结构,但是R数据集中可能还会存在因子这些东西,所以转换之后,有可能会打不开,经测试,确实我现在转换的这个数据集打不开。

install.packages("haven")

library(haven)

class(gbcs)

write_sas(gbcs,path="D:/R_learining/gbcs.sas7bdat")#这个函数不稳定,很有可能打不开SAS数据集write_xpt(gbcs,path="D:/R_learining/gbcs.xpt",version=8)help(write_sas)

但是R还提供一个函数就是将R数据集转换成SAS数据集,write_xpt函数。

write_xpt(gbcs, path = "D:/R_learining/gbcs.xpt",version=8),这里的version 8就是指转换成V8格式的XPT数据集。

需要注意的是,如果直接用SAS打开V8的XPT数据集,会报错打不开,所以可以用xpttoloc这个宏(这是SAS官方的宏,需要在SAS上运行)

libname test"D:\R_learining\class1";filename xlocfile"D:\R_learining\gbcs.xpt";/*存放XPT的路径*/%xpt2loc(libref=test/*输出数据集的逻辑库*/              ,memlist=gbcs              ,filespec=xlocfile              );

之后就可以打开这个数据集了,如果转换V5的XPT数据集,可以直接用SAS打开

上一篇下一篇

猜你喜欢

热点阅读