在R中,基于上一列中的数值生成列中的运行计数

在R中,基于上一列中的数值生成列中的运行计数,r,trading,R,Trading,我正在尝试根据第7列中的1和0生成第8列中的运行计数 不幸的是,我一直得到错误“q[k-1,8]+q[k,7]:二进制运算符的非数值参数中的错误” 如有任何建议,将不胜感激 for(k in 3:nrow(q)){ if(q[k, 7] > 0){ q[k, 8] <- (q[k-1, 8] + q[k, 7]) q[k, 8] <- as.numeric(q[k, 8]) } } for(k/3:nrow(q)){ 如果(q[k,7]>0){ q[k,8]

我正在尝试根据第7列中的1和0生成第8列中的运行计数

不幸的是,我一直得到错误“q[k-1,8]+q[k,7]:二进制运算符的非数值参数中的错误”

如有任何建议,将不胜感激

for(k in 3:nrow(q)){
  if(q[k, 7] > 0){
  q[k, 8] <- (q[k-1, 8] + q[k, 7])
  q[k, 8] <- as.numeric(q[k, 8])
 }
  }
for(k/3:nrow(q)){
如果(q[k,7]>0){

q[k,8]你说的是累积和吗?不知道你的输入数据是什么样子

df <-
  data.frame(
    col1 = c(NA, NA, NA, NA, NA, NA),
    col2 = c(NA, NA, NA, NA, NA, NA),
    col3 = c(NA, NA, NA, NA, NA, NA),
    col4 = c(NA, NA, NA, NA, NA, NA),
    col5 = c(NA, NA, NA, NA, NA, NA),
    col6 = c(NA, NA, NA, NA, NA, NA),
    col7 = c(0, 1, 0, 0, 1, 1)
  )

df$col8 <- cumsum(df$col7)

print(df)

  col1 col2 col3 col4 col5 col6 col7 col8
1   NA   NA   NA   NA   NA   NA    0    0
2   NA   NA   NA   NA   NA   NA    1    1
3   NA   NA   NA   NA   NA   NA    0    1
4   NA   NA   NA   NA   NA   NA    0    1
5   NA   NA   NA   NA   NA   NA    1    2
6   NA   NA   NA   NA   NA   NA    1    3

df您是否检查了第7列或第8列是否未存储为因子/字符?如果任一列不是逻辑或数字,则第q[k-1,8]+q[k,7]行将产生错误

尝试使用is.numeric()和is.logical()检查列