SASには、(LIBNAMEを使用して)ライブラリを作成する方法があります。これは、長いデータ処理を行う必要がある場合に、データセット名を常に変更するとは限らないため、役立ちます。したがって、名前を変更せずにデータセットを再度使用する場合は、ライブラリに入れることができます。したがって、データセット名が同じであっても、それらは異なるライブラリにあるため、一緒に作業できます。
私の質問は、ライブラリ(またはR内の別のフォルダ)を作成してそこにデータを保存できるようなオプションがRにあるかどうかです。
次に例を示します。
データセット「dat1」があるとします。var3のdat1var1と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とvar2の値が同じままであるかどうかを確認します。
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が保存されます。