R中的行操作是基于前一行和其他变量填充列吗?

kd3sttzy  于 2023-01-15  发布在  其他
关注(0)|答案(1)|浏览(127)

我有这样一个数据框:
| 索引|A类|B|是|
| - ------|- ------|- ------|- ------|
| 1个|第二章|1个|1个|
| 第二章|第二章|1个|不适用|
| 三个|第二章|1个|不适用|
| 四个|第二章|1个|不适用|
我想基于A、B和Y的先验值的函数替换“Y”中的NA,这样Y =先验Y + A-B
因此,最终结果应为:
| 索引|A类|B|是|
| - ------|- ------|- ------|- ------|
| 1个|第二章|1个|1个|
| 第二章|第二章|1个|第二章|
| 三个|第二章|1个|三个|
| 四个|第二章|1个|四个|
这似乎是一个简单的问题,但是在所有的函数中(apply,reduce,accumulate,lag,等等)我不确定哪种方法最好。希望dplyr能解决这个问题。谢谢!

mm5n2pyu

mm5n2pyu1#

可以对组合向量c(Y[1], (A - B)[-1])使用cumsum()

library(dplyr)

dat %>%
  mutate(Y = cumsum(c(Y[1], (A - B)[-1])))

# A tibble: 4 × 4
  Index     A     B     Y
  <dbl> <dbl> <dbl> <dbl>
1     1     2     1     1
2     2     2     1     2
3     3     2     1     3
4     4     2     1     4

相关问题