1
我有一個數據框,其中包含不同用戶每週的頁面瀏覽次數。它看起來像這樣:Dplyr根據分組數據的特定值將列添加到數據框中
Userid week views
eerr 24 1
dd 24 2
dd 25 1
...
我想繪製每週的平均頁面瀏覽量。但是,我想根據用戶在第一週內瀏覽的頁面數來對用戶進行分組,以便爲具有不同活動級別的用戶繪製單獨的軌跡。我可以通過做
weekdf = df %>% group_by(Userid) %>% mutate(firstweek = min(week))
得到的第一個星期爲每個用戶,但我無法通過視圖的列與第一個星期的價值弄清楚如何組。我嘗試在總結中使用用戶定義的函數,這似乎工作,但它從未終止,我可以看到爲什麼 - 它必須多次重新計算所有內容。
getoffset <- function(week, Userid,minweekdf)
{
minweek = minweekdf[minweekdf$Userid == Userid,2]
offsetweek = week - minweek
return(offsetweek)
}
offsetdf = df %>% group_by(Userid, week) %>% summarise(offsetweek = getoffset(week, Userid, minweek))
我該怎麼做,最好在dplyr中?
+1的'first'組。我無法弄清楚OP的要求。 – akrun 2014-09-01 11:51:23
安排 - >第一招絕非易事!謝謝!並感謝您計算出我想問的問題 - 我很難制定這個問題。 – bsg 2014-09-01 12:44:26
或'df%>%group_by(Userid)%>%mutate(fv = first(views,week))' – hadley 2014-09-01 15:06:36