簡體   English   中英

Dplyr根據分組數據的特定值將列添加到數據框

[英]Dplyr add column to data frame based on specific value of grouped data

我有一個數據框,其中包含每周各種用戶的頁面瀏覽量。 看起來像這樣:

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中?

像這樣:

df %>% group_by(Userid) %>% arrange(week) %>% mutate(fv = first(views) )

然后可以按fv分組

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM