1

この質問は非常に単純かもしれませんが、それを解決する良い方法が見つかりません。まとめて個別に分析する必要がある多くのサブグループを含むデータセットがあります。したがって、グループのサブセットを使用して、後の分析に使用したいと考えています。同様に、分析としてのサブセットの定義は、スペースを節約し、同じ分析がすべてのサブグループで確実に行われるようにするために、部分的にループで行う必要があります。

ブート パッケージのサンプル データフレームを使用したコードの例を次に示します。

data(aids)
qlist <- c("1","2","3","4")
for (i in length(qlist)) {
    paste("aids.sub.",qlist[i],sep="") <- subset(aids, quarter==qlist[i])
}

データセット内のサブグループを含む変数は文字列として保存されるため、それ以外の場合は必要ない qlist 部分を追加しました。

4

1 に答える 1

7

lapply を使用してサブセットのリストを作成します。

lapply(qlist, function(x) subset(aids, quarter==x))

同様に、次を回避しsubset()ます。

lapply(qlist, function(x) aids[aids$quarter==x,])

リストを使用すると、その後のコードが書きやすく、理解しやすくなる場合があります。リストをサブセット化して、単一のデータ フレームを取得できます (以下で作成したサブセットの 1 つを使用できるのと同じように)。ただし、変数名を作成しなくても ( fororを使用して) 反復処理することもできます。lapply

あなたが求めているように仕事をするには、次を使用しますassign

for (i in qlist) {
   assign(paste("aids.sub.",i,sep=""), subset(aids, quarter==i))
}

関数の削除length()と、これが を直接反復していることに注意してくださいqlist

于 2012-12-09T20:46:08.970 に答える