我有一個DF:df R中每x行的總和,僅輸出第x行。 [R
df <- data.frame(x = c(1,2,3,4,5,6,7,8,9,10,11,12,13),
y = c(0,0,2,0,1,0,0,0,0,3,0,4,0))
我在精確時刻尋找每4行的總和(時刻4後),這應該是輸出:
x y z
1 0 0
2 0 0
3 2 0
4 0 2
5 1 0
6 0 0
7 0 0
8 0 1
9 0 0
10 3 0
11 0 0
12 4 7
13 0 0
隨着dplyr我能夠用以下結果創建以下代碼。
a <- df %>%
dplyr::mutate(b = gl(ceiling(nrow(x)/4), 4, nrow(x))) %>%
dplyr::group_by(b) %>%
dplyr::mutate(sum = sum(amount))
x y z
1 0 2
2 0 2
3 2 2
4 0 2
5 1 1
6 0 1
7 0 1
8 0 1
9 0 7
10 3 7
11 0 7
12 4 7
13 0 0
但我不能夠刪除的數量,並與除第4行0取代他們,但問題是,如果我有一段0的它重複。
u能顯示預期的輸出 – akrun
我編輯的問題 – user5424264
難道你的意思是'DF%>% sum(y),0))%> mutate(sum = if_else(row_number()== n(),sum(y),0))'group_by(b = gl(ceiling(n()/ 4),4,n())) – akrun