在 SAS 中有一种创建库的方法(使用 LIBNAME)。这很有帮助,因为当我们必须进行长时间的数据处理时,我们不会总是更改数据集名称。因此,如果我们想再次使用数据集,而不更改名称,我们可以放入库中。因此,即使数据集名称相同,但由于它们位于不同的库中,我们也可以一起处理它们。
我的问题是 R 中是否有任何此类选项可以创建库(或 R 中的单独文件夹)以便我们可以将数据保存在那里?
这是示例:
假设我有一个数据集“dat1”。我为 var3 总结了 dat1 var1 和 var2 中的变量。
proc summary data=dat1 nway missing;
var var1 var2;
class var3;
output out=tmp.dat1 (drop = _freq_ _type_) sum = ;
run;
然后我将 dat1 与 dat2 合并,这是另一个数据集。dat1 和 dat2 都有公共变量 var3,我将其合并。我再次创建了新的数据集 dat1。
proc sql;
create table dat1 as
select a.*,b.*
from dat1 a left join tmp.dat2 b
on a.var3=b.var3;
quit;
现在,我在合并后再次汇总数据集 dat1,以检查 var1 和 var 2 的值在合并前后是否保持不变。
proc summary data=dat1 nway missing;
var var1 var2;
class var3;
output out=tmp1.dat1 (drop = _freq_ _type_) sum = ;
run;
R中的等效代码将是
dat3<-ddply(dat1,.(var3),summarise,var1=sum(var1,na.rm=TRUE),var2=sum(var2,na.rm=TRUE))
dat1<-sqldf("select a.*,b.* from dat1 a left join dat2 b on a.var3=b.var3")
dat4<-ddply(dat1,.(var3),summarise,var1=sum(var1,na.rm=TRUE),var2=sum(var2,na.rm=TRUE))
在 SAS 的情况下,我只使用了 2 个数据集名称。但在 R 的情况下,我使用 4 个数据集名称。因此,如果我正在编写 4000 行数据处理代码,有时数据集名称过多会让人不知所措。在 sas 中,与我使用 2 个库 tmp、tmp1 而非默认工作库相同的数据集名称变得很容易。
在 SAS 中,库定义为:
LIBNAME tmp "directory_path\folder_name";
在此文件夹中,将存储 dat1。