我想對表中的幾行進行一些計算。我在下面創建了一個示例:
library(dplyr)
year_week <- c(200045:200053, 200145:200152, 200245:200252)
input <- as.vector(sample(1:10,25,TRUE))
partial_sum <- c(13, 11, 8, 15, 14, 9, 11, 3, 3, 9, 12, 16, 17, 13, 16, 11, 9, 16, 19, 10, 16, 15, 11, 6, 8)
df <- data.frame(year_week, input, partial_sum)
給定的是列input和 year_week。后者代表日期,但在我的情況下,這些值是數字,前 4 位數字為年份,后兩位數字為當年的作業周。我需要的是迭代每年的每周,并將其他年份相同周的值相加,并將結果保存到名為partial_sum的列中。當前值不包括在總和中。2000 年的第 53 周將得到相同的處理,但在這種情況下,我只有一個圈年,因此它的值 3 不會改變。
關于如何制作的任何想法?謝謝
uj5u.com熱心網友回復:
我希望這樣的事情會起作用,盡管正如評論中指出的那樣,您的示例不能完全重現。
library(dplyr)
df %>%
mutate(week = substr(year_week, 5, 6)) %>%
group_by(week) %>%
mutate(result = sum(input))
uj5u.com熱心網友回復:
也許這substring會有所幫助 - 通過獲取 'week' 分組,獲得sum'input' 和 'input'之間的差異
library(dplyr)
df %>%
group_by(week = substring(year_week, 5)) %>%
mutate(partial_sum2 = sum(input) - input)
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/364186.html
下一篇:如何按組計算事件之間的天數
