remove_fun
という関数があるとします。この関数は、いくつかの条件に基づいてデータフレームの行数を減らします(この関数にはあまりにも冗長です)。この関数は、入力として2列のデータフレームを取ります。この例ではwhileループからのデータフレーム出力の保存R
block_2_df
Treatment seq
1 29
1 23
3 60
1 6
2 41
1 5
2 44
、の機能remove_fun
がblock_2_dfの$の配列は、配列の最大値に基づいて、一度に1行を削除しましょう:例えば、入力dfがblock_2_df
になります好きこれと呼ばれます。
remove_fun(block_2_df)
Treatment seq
1 29
1 23
1 6
2 41
1 5
2 44
すなわち配列を含む行== block_2_df
60は、私は、この操作を繰り返しwhileループを作成することができますremove_fun
により除去した。remove_fun
を適用すると、一度、次のようになり、新たなデータフレームにつながりますblock_2_df
に残りの行の数に基づいてremove_fun
介しblock_2_df
に:
while (dim(block_2_df)[1]>1) {
block_2_df <- remove_fun(block_2_df)
print(remove_fun(block_2_df))
}
このwhileループはを低減しますが1行残るまで(block_2_df$seq
の最小値)、block_2_df
の 'updated'バージョンが1行に縮小されるまで出力します。
しかし、私は(すなわち、その後7とblock_2_df
、6、次に5 ...、その後、1行)block_2_df
の各「更新」のバージョンを保存したいwhile
ループから製造します。どうすればこれを達成できますか?私はfor
ループを知っています。これは空のリストのith
要素にそれぞれ 'updated' block_2_df
を格納する際に空のリストを作成することで可能です。しかし、私はwhile
ループで同様のことをする方法がわかりません。このwhile
ループからの出力としてdfsのリストを持つことは素晴らしいことです。
私は実際の関数が2つのオブジェクトを出力するので、remove_funを2回呼び出していました(私のコードでは、これらの出力のそれぞれに対して2つの呼び出しがありました)。これはちょうど私が探していたものでした、ありがとう。 – lecreprays