我有一個data.frame與幾個樹木直徑的測量。我想要做的是計算變量dbh_increase的累積和,這是變異操作的產物(希望我已經清楚了)。R dplyr突變柱的滾動總和
我data.frame:https://www.dropbox.com/s/9usbu2kubbdyheu/bddendro.csv?dl=0
而這裏的整個代碼我運行:
bddendro<-read.table("bddendro.csv", h=T, sep = ";", dec = ",")
bddendro$dbh_new<-(bddendro$cbh_init + (bddendro$dendro_length * 0.2))/pi
bddendro<- bddendro %>%
filter(med != 0) %>%
group_by(parc, tree) %>%
mutate(dbh_increase = ifelse(dendro_length < lag(dendro_length), 0 ,dbh_new - lag(dbh_new))) %>%
mutate(dbh_cumsum = cumsum(dbh_increase))
第一個發生變異()正常工作,至少我希望,第二個那是行不通的。回到剛剛NA值
SOLUTION:
cumsum()不處理NA值,所以我用了發生變異()來改變的NA爲0,代碼如下:
mutate(dbh_increase = ifelse(is.na(dbh_increase), 0, dbh_increase))
我不知道你實際上問過一個問題在這裏。請務必在樣本輸入數據中包含[可重現的示例](https://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example),以便我們可以運行和測試代碼我們自己。 – MrFlick
你已經用'parc'和'tree'分組(從你發佈的數據看來)。這些組合只有一個觀察。 「滯後」只在每個分組內計算,因此變成「NA」(以前沒有觀察到1組)。 – Axeman
我會用你詢問的信息編輯我的帖子 –