R:根据条件移动值

问题描述

假设我有一个df:

Day   Plan   Actual    Sold
  1     50       45   Apple
  2     NA       NA      NA 
  3     30       NA  Orange
  4     NA       NA      NA
  5     NA       15      NA
  6     NA       16      NA
  7     NA       NA   Lemon
  8     NA       NA      NA
  9     45       45      NA 
 10     15       NA      NA
 11     35       NA   Berry
 12     NA       NA      NA
 13     NA       NA      NA
 14     NA       NA      NA
 15     50       50      NA

所需的输出

Day   Plan   Actual    Sold
  1     50       45   Apple
  2     NA       NA      NA 
  3     30       NA      NA
  4     NA       NA      NA
  5     NA       15  Orange
  6     NA       16      NA
  7     NA       NA      NA
  8     NA       NA      NA
  9     45       45   Lemon 
 10     15       NA      NA
 11     35       NA      NA
 12     NA       NA      NA
 13     NA       NA      NA
 14     NA       NA   Berry
 15     50       50      NA

我想在此执行的操作是根据这些条件依次移动“已售”列中的任何字符串:

  1. 当“实际”列中的值为NA而“计划”不是NA时,将对“已售”列中的字符串进行移位。否则,请检查条件(2)
  2. 当“实际”和“计划”列中的值均为NA时,将对“已出售”列中的字符串进行移位。否则,什么都不做
  3. 正在执行操作的项目(1或2)应移至与“实际”列首先遇到的同一行,而不是“计划”列为NA而不是NA
  4. 如果由于“计划”列的值在“实际”之前而没有满足条件(3),或者两个列都不同时为NA,则项目(1)保持不变。但是,如果有需要满足条件(2)的项目,则可以将其移动到“计划”具有值而“实际”为NA之前的行,或者移至与两列相同的行不是NA
  5. 一旦移动了项目,序列会再次重置为检查条件(1)

有没有办法对此进行编码?请指教

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)