1
我想創建一個等於數據$ Rating的運行總和的列,給出兩個條件在第3列和第4列中爲真,特別是數據$ Year <當前年份和數據$ ID等於當前ID。在R中爲數據框中的每一行計算一個條件運行總和
換句話說,這應該計算每個id直到前一年的累計評分總和。它應該爲數據框中的每一行(大約50,000行)執行此操作。鑑於數據幀的大小,如果可能,我寧願不循環。
我提供的如何做到這一點看看下面一個簡單的例子...
> head(data[,c(3,4,13)])
Year ID Rating CumSum
1 2010 13578 2 0
2 2010 13579 1 0
3 2010 13575 3 0
4 2011 13575 4 3
5 2012 13578 3 2
6 2012 13579 2 1
7 2012 13579 4 1
我從電子表格背景的,所以我在SUMIFS等方面還在考慮(這將在Excel中很好地解決了我的問題),所以如果語言不精確,請致歉。
一個ID可以有兩排,同年進入?如果沒有,你可以試試'library(dplyr); df%>%group_by(ID)%>%排列(年)%>%mutate(cumSum = cumsum(Rating) - Rating)' –
有一個ID可以在同一年出現多次 – user3725021
所以請改進您的示例數據集/所需輸出 –