R-将累积总和的最大值提取到新列中



数据集的样本:

testdf <- data.frame(risk_11111 = c(0,0,1,2,3,0,1,2,3,4,0), risk_11112 = c(0,0,1,2,3,0,1,2,0,1,0))

我需要输出数据集,该数据集将包含新的列,其中只能维护累积总和的最大值:

testdf <- data.frame(risk_11111 = c(0,0,1,2,3,0,1,2,3,4,0), 
                           risk_11111_max = c(0,0,0,0,3,0,0,0,0,4,0),
                           risk_11112 = c(0,0,1,2,3,0,1,2,0,1,0),
                           risk_11112_max = c(0,0,0,0,3,0,0,2,0,1,0))

我猜测向量的某个逻辑子集colwise colwise colwise collwise in Apply并提取位置索引的最大值,并突变为新变量。
我不知道如何提取新变量的值。
谢谢

基本r:

这样的东西
lapply(testdf, function(x) {
  x[diff(x) > 0] <- 0
  x
})

并将所有数据包含在一个数据中。

dfout <- cbind(testdf, lapply(testdf, function(x) {
  x[diff(x) > 0] <- 0
  x
}))
names(dfout) <- c(names(testdf), 'risk_1111_max', 'risk_1112_max')

输出:

   risk_11111 risk_11112 risk_1111_max risk_1112_max
1           0          0             0             0
2           0          0             0             0
3           1          1             0             0
4           2          2             0             0
5           3          3             3             3
6           0          0             0             0
7           1          1             0             0
8           2          2             0             2
9           3          0             0             0
10          4          1             4             1
11          0          0             0             0

最新更新