1
我有一個可重現的df
,其中有個人重複採樣。對於每個樣本,我跟蹤樣品的採集和使用的介質(A或B)。根據數據框中的兩列創建一個新列
dat <- data.frame(IndID = factor(c(1,1,2,2,2,3,3)),
Order = c(1,2,1,2,3,1,2),
Media = factor(c("A", "B", "B","A","B","A", "A")))
dat
IndID Order Media
1 1 1 A
2 1 2 B
3 2 1 B
4 2 2 A
5 2 3 B
6 3 1 A
7 3 2 A
我想創建一個新列,其中包含媒體和一個數字,表示媒體中每個級別的採樣順序。換句話說,IndID和Media分組後,我想製作一個新的專欄來訂購樣品。對於每個人,如果兩個不同媒體(如IndID 1)中只有兩個樣本,則新值將爲「A1」和「B1」。如果來自同一媒體的兩個樣本,新值需要遵循採樣順序爲「B1」和「B2」。
鑑於上述數據,我試圖創建下面列
dat$WantThis <- c("A1", "B1","B1", "A1","B2", "A1", "A2")
IndID Order Media WantThis
1 1 1 A A1
2 1 2 B B1
3 2 1 B B1
4 2 2 A A1
5 2 3 B B2
6 3 1 A A1
7 3 2 A A2
我一直在嘗試使用dplyr
包,但不能連接上應該包括哪些內容作爲第二個參數來paste
點。
dat2 <- as.data.frame(dat %>% group_by(IndID, Media) %>% mutate(MediaOrder = paste0(Media, ????)))
在此先感謝。我歡迎任何建議。
'DAT%>%GROUP_BY(的indid,媒體)%>%突變(WantThis = paste0(媒體,ROW_NUMBER()))'大概 –
'DAT2 <- dat %>%GROUP_BY(的indid,媒體)%>%變異(WantThis = paste0(Media,row_number()))''生成'錯誤在rank(x,ties.method =「first」,na.last =「keep」): 參數「x」丟失, –
你有哪個'dplyr'版本?它對我很好。你可以嘗試mutat(WantThis = paste0(Media,1:n()))'而不是 –