簡體   English   中英

在R中根據前一列的數值在列中產生運行計數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM