我想计算累计和并使用mutate
来创建新列。我正在为多列进行此操作,并且每个列都在不同的地方缺少数据。使用na.rm = TRUE与变异函数内的函数
day water nitrogen
1 4 5
2 NA 6
3 3 NA
4 7 NA
5 2 9
6 NA 3
7 2 NA
8 NA 2
9 7 NA
10 4 3
我尝试
mutate(df, sumwater = cumsum(water))%>%
mutate(sumnitrogen = cumsum(nitrogen))
或
mutate(df, sumwater = cumsum(water, na.rm = TRUE))%>%
mutate(sumnitrogen = cumsum(nitrogen, na.rm = TRUE))
既不作品。我知道我们可以在summarize
函数中做na.rm=TRUE
。有没有办法让它在mutate
中工作?我更喜欢dplyr
的答案,因为实际上这是一条长长的管道系统的一部分。
虽然没有具体的dplyr,很好的答案紧靠'cumsum'和'NA' [这里](http://stackoverflow.com/questions/25576358/calculate-cumsum-while-ignoring-na-值) – aosmith
'cumsum'没有'na.rm'参数,这不是dplyr特有的问题。请参阅'?cumsum'文档。 – Frank
你也可以做类似'df%>%mutate(sumwater = cumsum(replace(water,is.na(water),0)),sumnitrogen = cumsum(replace(nitrogen,is.na(nitrogen),0) ))' –