我有一个数据集
field_pointpath Value Expected
C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 22098 22098
C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 22098 NA
C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 22098 NA
C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 22098 NA
C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 22100 NA
C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 22100 NA
C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 0 NA
C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 0 NA
C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 0 NA
C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 2 NA
C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 2 NA
C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 2 NA
C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 2 NA
C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 2 NA
C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 18916 18916
C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 18916 NA
C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 18916 NA
C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 18916 NA
C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 18917 NA
C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 18917 NA
C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 0 NA
C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 0 NA
C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 0 NA
C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 0 NA
C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 0 NA
C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 0 NA
C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 0 NA
C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 0 NA
C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 17434 17434
C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 17441 NA
C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 17441 NA
C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 17446 NA
C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 17475 NA
C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 17488 NA
C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 17504 NA
C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 93 NA
C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 126 NA
C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 157 NA
C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 211 NA
C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 212 NA
C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 212 NA
C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 246 NA
C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 246 NA
是否有任何方法可以确保,如果不同的field_pointpath
的下一个值小于预期
中的值,那么它应该在
列中执行加法。
下面是我期待的结果
field_pointpath Value Expected
C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 22098 22098
C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 22098 22098
C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 22098 22098
C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 22098 22098
C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 22100 22100
C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 22100 22100
C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 0 22100
C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 0 22100
C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 0 22100
C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 2 22102
C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 2 22104
C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 2 22106
C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 2 22108
C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 2 22110
C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 18916 18916
C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 18916 18916
C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 18916 18916
C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 18916 18916
C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 18917 18917
C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 18917 18917
C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 0 18917
C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 0 18917
C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 14 18931
C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 0 18931
C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 5 18936
C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 7 18943
C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 9 18952
C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 10 18962
C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 17434 17434
C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 17441 17441
C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 17441 17441
C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 17446 17446
C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 17475 17475
C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 17488 17488
C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 17504 17504
C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 93 17597
C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 126 17723
C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 157 17880
C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 211 18091
C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 212 18303
C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 212 18515
C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 246 18761
C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 246 19007
所以基本上我寻求一个解决方案,对于每个唯一的< code>field_pointpath,如果它遇到一个小于前一个值的值,那么它应该将前一个值与下一个值相加。
if <代码>值[i 1]
此代码可以做到:
dat <- read.table(header=TRUE, stringsAsFactors = FALSE, text=
' field_pointpath Value Expected
C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 22098 22098
C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 22098 NA
C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 22098 NA
C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 22098 NA
C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 22100 NA
C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 22100 NA
C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 0 NA
C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 0 NA
C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 0 NA
C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 2 NA
C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 2 NA
C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 2 NA
C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 2 NA
C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 2 NA
C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 18916 18916
C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 18916 NA
C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 18916 NA
C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 18916 NA
C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 18917 NA
C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 18917 NA
C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 0 NA
C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 0 NA
C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 0 NA
C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 0 NA
C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 0 NA
C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 0 NA
C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 0 NA
C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 0 NA
C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 17434 17434
C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 17441 NA
C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 17441 NA
C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 17446 NA
C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 17475 NA
C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 17488 NA
C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 17504 NA
C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 93 NA
C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 126 NA
C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 157 NA
C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 211 NA
C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 212 NA
C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 212 NA
C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 246 NA
C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 246 NA')
my.fill <- function(d) {
d$Expected[is.na(d$Expected)] <- -1
d$Expected <- cummax(pmax(d$Expected, d$Value))
ind <- which(d$Value < d$Expected)
d$Expected[ind] <- d$Expected[ind[1]-1] + cumsum(d$Value[ind])
d
}
L <- split(dat, dat$field_pointpath)
Lnew <- lapply(L, my.fill)
do.call(rbind, Lnew)
结果:
field_pointpath Value Expected
C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC.1 C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 22098 22098
C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC.2 C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 22098 22098
C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC.3 C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 22098 22098
C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC.4 C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 22098 22098
C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC.5 C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 22100 22100
C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC.6 C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 22100 22100
C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC.7 C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 0 22100
C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC.8 C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 0 22100
C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC.9 C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 0 22100
C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC.10 C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 2 22102
C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC.11 C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 2 22104
C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC.12 C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 2 22106
C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC.13 C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 2 22108
C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC.14 C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 2 22110
C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC.15 C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 18916 18916
C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC.16 C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 18916 18916
C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC.17 C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 18916 18916
C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC.18 C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 18916 18916
C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC.19 C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 18917 18917
C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC.20 C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 18917 18917
C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC.21 C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 0 18917
C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC.22 C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 0 18917
C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC.23 C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 0 18917
C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC.24 C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 0 18917
C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC.25 C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 0 18917
C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC.26 C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 0 18917
C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC.27 C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 0 18917
C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC.28 C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 0 18917
C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC.29 C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 17434 17434
C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC.30 C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 17441 17441
C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC.31 C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 17441 17441
C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC.32 C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 17446 17446
C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC.33 C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 17475 17475
C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC.34 C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 17488 17488
C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC.35 C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 17504 17504
C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC.36 C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 93 17597
C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC.37 C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 126 17723
C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC.38 C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 157 17880
C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC.39 C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 211 18091
C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC.40 C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 212 18303
C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC.41 C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 212 18515
C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC.42 C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 246 18761
C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC.43 C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 246 19007
以下是data.table
的版本:
library("data.table")
dat <- fread(
' field_pointpath Value Expected
C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 22098 22098
C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 22098 NA
C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 22098 NA
C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 22098 NA
C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 22100 NA
C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 22100 NA
C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 0 NA
C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 0 NA
C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 0 NA
C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 2 NA
C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 2 NA
C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 2 NA
C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 2 NA
C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 2 NA
C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 18916 18916
C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 18916 NA
C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 18916 NA
C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 18916 NA
C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 18917 NA
C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 18917 NA
C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 0 NA
C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 0 NA
C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 0 NA
C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 0 NA
C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 0 NA
C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 0 NA
C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 0 NA
C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 0 NA
C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 17434 17434
C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 17441 NA
C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 17441 NA
C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 17446 NA
C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 17475 NA
C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 17488 NA
C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 17504 NA
C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 93 NA
C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 126 NA
C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 157 NA
C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 211 NA
C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 212 NA
C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 212 NA
C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 246 NA
C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 246 NA')
my.fill <- function(Value, Expected) {
Expected[is.na(Expected)] <- -1
Expected <- cummax(pmax(Expected, Value))
ind <- which(Value < Expected)
Expected[ind] <- Expected[ind[1]-1] + cumsum(Value[ind])
Expected
}
dat[, E:=my.fill(Value, Expected), by=field_pointpath]
结果:
> dat
field_pointpath Value Expected E
1: C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 22098 22098 22098
2: C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 22098 NA 22098
3: C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 22098 NA 22098
4: C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 22098 NA 22098
5: C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 22100 NA 22100
6: C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 22100 NA 22100
7: C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 0 NA 22100
8: C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 0 NA 22100
9: C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 0 NA 22100
10: C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 2 NA 22102
11: C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 2 NA 22104
12: C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 2 NA 22106
13: C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 2 NA 22108
14: C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 2 NA 22110
15: C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 18916 18916 18916
16: C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 18916 NA 18916
17: C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 18916 NA 18916
18: C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 18916 NA 18916
19: C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 18917 NA 18917
20: C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 18917 NA 18917
21: C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 0 NA 18917
22: C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 0 NA 18917
23: C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 0 NA 18917
24: C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 0 NA 18917
25: C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 0 NA 18917
26: C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 0 NA 18917
27: C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 0 NA 18917
28: C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 0 NA 18917
29: C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 17434 17434 17434
30: C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 17441 NA 17441
31: C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 17441 NA 17441
32: C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 17446 NA 17446
33: C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 17475 NA 17475
34: C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 17488 NA 17488
35: C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 17504 NA 17504
36: C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 93 NA 17597
37: C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 126 NA 17723
38: C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 157 NA 17880
39: C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 211 NA 18091
40: C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 212 NA 18303
41: C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 212 NA 18515
42: C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 246 NA 18761
43: C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 246 NA 19007
field_pointpath Value Expected E
使用<code>数据。表,这也可以写成一行:
library(data.table)
DT[, new := cummax(Value) + cumsum((Value < cummax(Value)) * Value), field_pointpath][]
这将返回:
field_pointpath Value Expected new
1: C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 22098 22098 22098
2: C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 22098 22098 22098
3: C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 22098 22098 22098
4: C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 22098 22098 22098
5: C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 22100 22100 22100
6: C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 22100 22100 22100
7: C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 0 22100 22100
8: C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 0 22100 22100
9: C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 0 22100 22100
10: C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 2 22102 22102
11: C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 2 22104 22104
12: C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 2 22106 22106
13: C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 2 22108 22108
14: C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC 2 22110 22110
15: C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 18916 18916 18916
16: C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 18916 18916 18916
17: C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 18916 18916 18916
18: C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 18916 18916 18916
19: C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 18917 18917 18917
20: C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 18917 18917 18917
21: C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 0 18917 18917
22: C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 0 18917 18917
23: C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 14 18931 18931
24: C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 0 18931 18931
25: C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 5 18936 18936
26: C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 7 18943 18943
27: C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 9 18952 18952
28: C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC 10 18962 18962
29: C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 17434 17434 17434
30: C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 17441 17441 17441
31: C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 17441 17441 17441
32: C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 17446 17446 17446
33: C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 17475 17475 17475
34: C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 17488 17488 17488
35: C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 17504 17504 17504
36: C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 93 17597 17597
37: C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 126 17723 17723
38: C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 157 17880 17880
39: C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 211 18091 18091
40: C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 212 18303 18303
41: C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 212 18515 18515
42: C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 246 18761 18761
43: C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC 246 19007 19007
field_pointpath Value Expected new
请注意,这里使用的是Q的第二个数据集,它在某些行中与第一个数据集不同(见注释)。
DT <- structure(list(field_pointpath = c("C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC",
"C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC", "C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC",
"C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC", "C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC",
"C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC", "C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC",
"C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC", "C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC",
"C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC", "C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC",
"C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC", "C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC",
"C_THDxL_0154x6KSFS_A03x6KSF_11xaP_ACTACC", "C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC",
"C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC", "C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC",
"C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC", "C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC",
"C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC", "C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC",
"C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC", "C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC",
"C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC", "C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC",
"C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC", "C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC",
"C_THDxL_0154x6KSFS_B03x6KSF_11xaP_ACTACC", "C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC",
"C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC", "C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC",
"C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC", "C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC",
"C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC", "C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC",
"C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC", "C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC",
"C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC", "C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC",
"C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC", "C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC",
"C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC", "C_THDxL_0154x8KLFS_A06x8KLF_26xaP_ACTACC"
), Value = c(22098L, 22098L, 22098L, 22098L, 22100L, 22100L,
0L, 0L, 0L, 2L, 2L, 2L, 2L, 2L, 18916L, 18916L, 18916L, 18916L,
18917L, 18917L, 0L, 0L, 14L, 0L, 5L, 7L, 9L, 10L, 17434L, 17441L,
17441L, 17446L, 17475L, 17488L, 17504L, 93L, 126L, 157L, 211L,
212L, 212L, 246L, 246L), Expected = c(22098L, 22098L, 22098L,
22098L, 22100L, 22100L, 22100L, 22100L, 22100L, 22102L, 22104L,
22106L, 22108L, 22110L, 18916L, 18916L, 18916L, 18916L, 18917L,
18917L, 18917L, 18917L, 18931L, 18931L, 18936L, 18943L, 18952L,
18962L, 17434L, 17441L, 17441L, 17446L, 17475L, 17488L, 17504L,
17597L, 17723L, 17880L, 18091L, 18303L, 18515L, 18761L, 19007L
)), .Names = c("field_pointpath", "Value", "Expected"), row.names = c(NA,
-43L), class = "data.frame")
setDT(DT)
本文向大家介绍Android实现根据评分添加星级条,包括了Android实现根据评分添加星级条的使用技巧和注意事项,需要的朋友参考一下 简述 在仿写豆瓣的时候,发现了根据评分不同,星级数也不同的星级条。 百度一搜,发现Android有自带控件UIRatingBar,而iOS得要自己写…好吧,那就写吧。 图片素材 首先,要准备三张图片,图片如下: 空星,半星,全星 因为我们可以看到,在豆瓣的评分星级
本文向大家介绍asp.net SqlParameter如何根据条件有选择的添加参数,包括了asp.net SqlParameter如何根据条件有选择的添加参数的使用技巧和注意事项,需要的朋友参考一下 SqlParameter带参数的增删改查语句,可以防止注入.有时候写sql语句的时候会根据方法传进来的参数来判断sql语句中where条件的参数. 一般方法 DAL层方法 现在想根据集合UserInf
我试图弄清楚如何根据java系统属性是否为given/set向记录器添加一个appender。 假设我有这样一个基本配置: 例如,我知道我可以在给定属性(“loglevel”)上使级别动态化(如果没有给定属性,则默认为“info”): 我看了筛选器的文档,我想不出来。当然,如果过滤器是正确的方法的话。
我现在所做的:
问题内容: 您能告诉我一种禁用提交按钮的方法吗,该按钮通过以下方式变为新状态: 仅当表单有效时,才应启用该按钮。 与不起作用: app.js中的canSave函数为: 问题答案: 您可以简单地将其与之配对,这样便可以使用。 这是使用自定义指令的更理想的方式:
我有以下数据帧: 我希望获得行ID,其中。 预期收益为。 有什么想法吗?