在R中,基于上一列中的数值生成列中的运行计数
我正在尝试根据第7列中的1和0生成第8列中的运行计数 不幸的是,我一直得到错误“q[k-1,8]+q[k,7]:二进制运算符的非数值参数中的错误” 如有任何建议,将不胜感激在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]
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()检查列