[英]In R produce a running count in column based on previous column with numeric values
我試圖基於第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])
}
}
您是在說累計金額嗎? 不知道您的輸入數據是什么樣的...
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
您是否檢查了第7列或第8列是否未存儲為因子/字符? 如果任一列不是邏輯列或數字列,則q [k-1,8] + q [k,7]行會產生錯誤。
嘗試使用is.numeric()和is.logical()檢查您的列。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.