我對上述問題有個小問題。具體來說,我在R中有兩個日期變量,起始日期和結束日期,例如:2000-1-1開始的一個案例以2000-4-1結束。根據日期持續時間彙總統計值R
我也有一個變量,記錄在這些日期內的一個醫療結果,比如說在2000-1-1,結果是20;並在2000-2-1/2000-3-1/2000-4-1的結果是30,30和50.
我想根據每個日期的持續時間計算這些變量的平均值,在我們的情況平均值將是32.5(130/4)。
我該如何在R studio中實現它?提前致謝。
伊桑
我對上述問題有個小問題。具體來說,我在R中有兩個日期變量,起始日期和結束日期,例如:2000-1-1開始的一個案例以2000-4-1結束。根據日期持續時間彙總統計值R
我也有一個變量,記錄在這些日期內的一個醫療結果,比如說在2000-1-1,結果是20;並在2000-2-1/2000-3-1/2000-4-1的結果是30,30和50.
我想根據每個日期的持續時間計算這些變量的平均值,在我們的情況平均值將是32.5(130/4)。
我該如何在R studio中實現它?提前致謝。
伊桑
聽起來像是你需要使用聚合函數來計算你的價值觀的總和每個季度。
EDITED看起來你並沒有使用一年的季度作爲你的時間間隔,但是三個月?所以jan-apr是一個類別,may-aug是另一個類別,sep-dec是最後一個?
如果是這種情況,你不能使用lubridate :: quarter(),所以你需要編寫自己的矢量化函數,處理這個三個月,並分配每個數字。
trimester <- function(date){
if(lubridate::month(date) >= 1 & lubridate::month(date) <= 4) return(1)
if(lubridate::month(date) >= 5 & lubridate::month(date) <= 8) return(2)
if(lubridate::month(date) >= 9 & lubridate::month(date) <= 12) return(3)}
VectorizedTrimester <- Vectorize(trimester)
那麼你實際的聚合可以通過以下方式實現:這很容易通過做
aggregate(formula = OrderValue ~ VectorizedTrimester(OrderDate), FUN = mean)
這是我可以給你你提供了什麼是最好的,下次考慮在您的問題中使用變量名稱和實際代碼以獲得更好的答案。