2016-01-10 69 views
1

我試圖在該組的所有行中重複一組內的第一個值。我原以爲他會做到這一點:用dplyr在組內重複首次觀察

library(dplyr) 
data.frame(g=c(1,1,2,2), v=c(1,2,3,4)) %>% 
    group_by(g) %>% 
    mutate(f=first(v)) 
# Source: local data frame [4 x 3] 
# Groups: g [2] 
# 
#  g  v  f 
# (dbl) (dbl) (dbl) 
# 1  1  1  1 
# 2  1  2  1 
# 3  2  3  1 
# 4  2  4  1 

但我不明白爲什麼f不返回1,1,3,3-。

+3

它確實會爲我返回1 1 3 3。你使用了什麼dplyr版本('packageVersion(「dplyr」)'?我有0.4.3 –

+4

'plyr'是否可能被加載?在這種情況下,使用'dplyr :: mutate(f = first(v) )' – akrun

回答

1

這應該工作

data.frame(g=c(1,1,2,2), v=c(1,2,3,4)) %>% 
    group_by(g) %>% 
    mutate(f = dplyr::first(v)) 

你可以從不同的包被撿first。它存在於xts包中,可能還有其他包。

+0

非常感謝所有人 - 我已經接受了這個答案,並提出了Akrun。事實證明,我之前加載了導致問題的plyr。 – bjw