我有一个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
我会用你询问的信息编辑我的帖子 –