按列减去值,值翻转

时间:2018-06-07 17:07:24

标签: r

我们说我有这个数据框,

data<- data.frame (A = c (6,5,4,3,2,1), B=c(0,0,4,4,0,0))

我想从A中减去B,创建它,C = A-B

data2 <- data.frame(A = c (6,5,4,3,2,1), B=c(0,0,4,4,0,0), C=c(6,5,0,0,0,0))

从第4行开始,A小于B,但我不想要负值,我想保持C&gt; = 0,超出的值将转到下一行并执行扣除。知道我应该应用哪个功能?

1 个答案:

答案 0 :(得分:0)

也许不是一个非常干净的解决方案,但你的问题似乎意味着迭代搜索:

while(sum(data$B)>0)
  data <- data.frame(A=ifelse(data$A>=data$B,data$A-data$B,0),
                     B=lag(ifelse(data$A>=data$B,0,data$B-data$A),default=0))