假设我有一个名为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