3

このループは、bond1,...,bond13 という名前の 13 個の df を適切に作成し、function1 からの値を割り当てます。次に、function2 と他の 2 つの DF を使用して、spread1、...、spread13 という名前の 13 の DF をさらに作成する必要があります。これらの 1 つは 13 のスプレッドすべて (DF_B) で修正されていますが、spreadi の場合は bondi が必要で、コードの 2 行目に次のエラーが表示されます。 ) : RS-DBI ドライバー: (ステートメントのエラー: そのようなテーブルはありません: ボンド)"

for(i in 1:13) 
{
  assign(paste("bond", i, sep = ""), function1(DF_A))
  assign(paste("spread", i, sep = ""), function2(DF_B, paste("bond", i, sep = "")))
}

これを行う適切な方法は何ですか?

4

2 に答える 2

9

function2 では、実際のデータ オブジェクトではなく、文字列を引数として渡しています。

貼り付け機能をラップget(.)すると、すべての設定が完了します。

function2(DF_B, get( paste("bond", i, sep = "") ) )

そうは言っても、私はこの方法に反対することを強くお勧めします.

代わりに、list

bond <- vector("list", 13)
spread <- vector("list", 13)

for(i in 1:13) 
{
  bond[[i]]   <- function1(DF_A)
  spread[[i]] <- function2(DF_B, bond[[i]])
}
于 2013-10-05T19:16:01.017 に答える