我一直想找一个合适的方法来记录SAS的学习笔记,最好能结合以往的编程经验(如R or Python);我想到了当初学习Python的时候是根据实际需要,结合R/Perl的既往经验来互补学习,那么SAS也是可以这样。
后来我发现有一本书《SAS and R: Data Management, Statistical Analysis, and Graphics (second edition)》,这本书写内容的也正好是我想要做的:基于实际需求,尤其是在数据处理这部分,分别列出R和SAS的实现方法。这样会使得记忆更加深刻点
因此我打算参考这本书的思路,以系列的形式来记录SAS的笔记;
This is reference to the Data input and output (chapter 1) from <SAS and R: Data Management, Statistical Analysis, and Graphics (second edition)>
Input native dataset
在R中,看到.rda
结尾文件,我们一般认为其是R数据集,常用load()
来加载文件,用save()
在R中将数据保存为.rda
格式
load(file = "mydata.rda")
在SAS中,SAS数据集是以.sas7bdat
结尾,用libname
加载文件,保存也类同
libname libref "C:\Users\temp";
data ds2;
set libref.ds;
run;
Input TXT file or CSV file
在R中,有多种读取TXT或者CSV的函数和R包,比如基础的函数read.table()
或者read.csv()
,我常用的包有data.table
和readr
在SAS中,一般会用proc import
/*input csv files*/
filename mycsv "C:/demo.csv";
proc import out=mycsv datafile=mycsv
dbms=csv replace;
getnames=yes;
guessingrows=20;
datarow=2;
run;
/*input txt files with tab delimiter*/
filename mytxt "C:/demo.txt";
proc import out=mytxt datafile=mytxt
dbms=dlm replace;
delimiter='09'x;
getnames=yes;
run;
Input XLSX file
在R中,一般用R包读取外部XLSX中sheet的数据,如xlsx
包,有时openxlsx
包也不错
df <- xlsx::read.xlsx(file = "data.xlsx", sheetIndex = 1)
在SAS中,还是适用proc import
,设置dbms=excel
/*input excel files*/
filename myexcel "C:/class.xlsx";
proc import out=myxls datafile=myexcel
dbms=excel replace;
run;
Input manual data entry
在R中,常见的数据格式有向量c()
、列表list()
以及数据框data.frame()
在SAS中,用input
生成自定义的数据
data wide;
input SID $ Programming State English;
datalines;
S01 98 100 80
S02 84 98 94
S03 89 92 88
;
run;
Displaying data
在R中,查看部分数据可以用print()
函数,查看数据格式用str()
函数
以上对应到SAS中,分别是proc print
和proc content
Output native/TXT/CSV/XLSX file
在R中,native data用save()
函数,TXT/CSV对应write.table()
,XLSX对应xlsx::write.xlsx()
或者openxlsx::write.xlsx()
在SAS中,native数据跟input类似
libname libref "C:\Users\temp";
data temp.ds;
set work.ds;
run;
TXT、CSV以及XLS都可以用proc export
proc export data=ds outfile="C:/Users/temp/filename.xls"
dbms=excel;
run;
参考资料:
SAS and R: Data Management, Statistical Analysis, and Graphics (second edition)
本文出自于http://www.bioinfo-scrounger.com转载请注明出处