Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dplyr根据分组数据的特定值将列添加到数据帧_R_Dplyr - Fatal编程技术网

Dplyr根据分组数据的特定值将列添加到数据帧

Dplyr根据分组数据的特定值将列添加到数据帧,r,dplyr,R,Dplyr,我有一个数据框,包含不同用户每周的页面浏览量。看起来是这样的: Userid week views eerr 24 1 dd 24 2 dd 25 1 ... 我想绘制每周的平均页面浏览量。但是,我想根据用户在第一周的页面浏览量对他们进行分组,这样我就可以为具有不同活动级别的用户绘制单独的轨迹。我可以通过执行以下操作获得每个用户的第一周 weekdf = df %>% group_by(Userid) %>% mutate(firstweek = m

我有一个数据框,包含不同用户每周的页面浏览量。看起来是这样的:

Userid week views
eerr   24   1
dd     24   2
dd     25   1
...
我想绘制每周的平均页面浏览量。但是,我想根据用户在第一周的页面浏览量对他们进行分组,这样我就可以为具有不同活动级别的用户绘制单独的轨迹。我可以通过执行以下操作获得每个用户的第一周

weekdf = df %>% group_by(Userid) %>% mutate(firstweek = min(week))
但我不知道如何根据第一周行中的视图值进行分组。我试着在Summary中使用一个用户定义的函数,这似乎是可行的,但它从未终止,我明白了为什么——它必须多次重新计算所有内容

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)) 
getoffset%groupby(Userid,week)%%>%summary(offsetweek=getoffset(week,Userid,minweek))
我如何才能做到这一点,最好是在dplyr中?

类似这样的内容:

Userid week views
eerr   24   1
dd     24   2
dd     25   1
...
df%%>%groupby(Userid)%%>%arrange(week)%%>%mutate(fv=first(views))

然后你可以按fv分组

排列-->第一个技巧非常精彩!谢谢谢谢你解答了我想问的问题-我很难回答这个问题。或者
df%>%groupby(Userid)%>%mutate(fv=first(views,week))