假設我有一個名爲remove_fun
的函數,它根據某些條件減少了數據幀的行數(該函數在這個問題中過於冗長)。該函數以2列爲輸入數據幀。例如,輸入DF稱爲block_2_df
可以看看喜歡這樣的:在R中存儲while循環的數據幀輸出
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行。應用remove_fun
一旦將導致新的數據幀,看起來像這樣:
remove_fun(block_2_df)
Treatment seq
1 29
1 23
1 6
2 41
1 5
2 44
即含有序列排在== 60 block_2_df
經remove_fun
刪除我可以創建一個while循環,其重複此操作經由remove_fun
block_2_df
根據行中剩餘的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
的'更新'版本,直到它被縮減爲一行。
然而,我想保存的block_2_df
每個「更新」版本(即block_2_df
7,然後如圖6所示,然後5,...,然後1行)從while
循環產生的。我怎樣才能做到這一點?我知道for
循環,這可以通過創建一個空列表來存儲空列表中的ith
元素中的每個「已更新」block_2_df
。但我不知道如何在while
循環中做類似的事情。將這個while
循環的dfs列表作爲輸出將會很好。
我在調用remove_fun兩次,但只是因爲我的真實函數輸出兩個對象(所以在我的代碼中,我對這些輸出中的每一個都有兩次調用)。這正是我想要的,謝謝。 – lecreprays