1
我想減去每個行組(ID)執行以下操作:操作
1)組數據由ID和順序它由訂單
2)減 「C2」到該組的每個元素
數據:
df <- data.frame (ID=rep(c("F1","F2","F3","F4","F5"),c(5,3,6,2,4)),
Cond=rep(c("C1","C2","C3","C4"),5),
Value=c(1:20),
Y_REAL = c(-1,0,1,2,3,
0,1,2,
-1,0,1,2,3,4,
NA,NA,
-1,0,1,2))
Order <- c("C1","C2","C3","C4")# order to be sorted the elements
我下面寫的代碼......但事情都不盡如人意
library(dplyr)
library(magrittr)
Out <- df %>% #filter(Wheat_Exp,Field=="2014_P1") %>%
group_by(ID) %>%
slice(match(Order,Cond))%>%
mutate(Y_Diff = Value - lag(Value, default = Value[Cond == "C2"]))
(更新)
列Y_DIFF減去輸出與組中第一個元素的關係(ID)。不正確! 列Y_REAL是我想要獲得的輸出。 此外,3行在計算中「丟失」。
請添加您的預期輸出。 –
@Ranan完成 Axeman,我試過了你的建議,但它不起作用。儘管如此......我已經納入了這個問題,因爲我相信這很容易理解我的觀點 – Rui