如何循环每一行并更新i值

问题描述 投票:0回答:1

使用R语言

我正在尝试使用数据集中的 2 列和一个外部值来计算名为“余额”的新列,我的观点是使用 y(外部值)进行此计算来生成名为“余额”的新列,然后使用此余额而不是y ,我需要更新每一行的值。

y <- 4000  # external value


# Create data set

df <- data.frame(id = c(1,1,1,2,2,2),
                 DR = c(10,20,30,40,50,60),
                 CR = c(-10,-20,-70,-60,-80,-30))


# used loop

for(i in df$id) {
  
  i <- y 

  i <- i + df$CR - df$CR

  df$balance<- i 
  
}
#result 

  id DR  CR balance
1  1 10 -10   4000
2  1 20 -20   4000
3  1 30 -70   4000
4  2 40 -60   4000
5  2 50 -80   4000
6  2 60 -30   4000

*balance Colum doesn't update*
r loops
1个回答
0
投票

我怀疑你正在寻找或者

df = data.frame(id = c(1,1,1,2,2,2),
                DR = c(10,20,30,40,50,60),
                CR = c(-10,-20,-70,-60,-80,-30))

4000 + with(df, DR + CR)
[1] 4000 4000 3960 3980 3970 4030
4000 + cumsum(with(df, DR + CR))
[1] 4000 4000 3960 3940 3910 3940

假设公式为

Balance + DR - CR
,由于
df$CR
最初存储的方式,需要调整符号。或者使用
DR - abs(CR)
。很难说。

© www.soinside.com 2019 - 2024. All rights reserved.