如何解决在忽略r
我有一个包含四列的数据集,并且想要创建第五列,这将是第四列的累积总和。
数据集:
Col1 Col2 Col3 Col4
2017-12-26 0.000000e+00 NaN NaN
2017-12-27 3.295056e-05 NaN NaN
2017-12-28 2.998402e-03 NaN NaN
2017-12-29 -3.777862e-03 NaN NaN
2018-01-01 0.000000e+00 NaN NaN
2018-01-02 -6.265354e-04 0.001210748 -1.837284e-03
2018-01-03 1.501328e-03 0.001505680 -4.351903e-06
2018-01-04 1.103716e-03 0.001266719 -1.630024e-04
2018-01-05 7.437758e-03 0.005948840 1.488918e-03
2018-01-08 1.323032e-03 0.000949433 3.735992e-04
赔率:
structure(list(date = structure(c(17526,17527,17528,17529,17532,17533,17534,17535,17536,17539,17540,17541),class = "Date"),S.P.ASX.200 = c(0,3.29505576881495e-05,0.00299840195060885,-0.00377786173026062,-0.000626535423983166,0.0015013280979328,0.00110371639430684,0.00743775814121861,0.00132303219378338,0.000880856061594715,-0.00637243717200697),portfolio.average = c(NaN,NaN,0.00121074842324788,0.00150568000136751,0.00126671875198612,0.00594883984640553,0.000949433018286304,-0.00477888742856801,-0.007316033066539),marketed_adjusted_return = c(NaN,-0.00183728384723105,-4.35190343470821e-06,-0.000163002357679275,0.00148891829481308,0.000373599175497076,0.00565974349016273,0.000943595894532028)),row.names = 612:623,class = "data.frame")
我尝试使用下面的函数,但是它仅返回NaN来返回第五列。
cumulative_a <- a %>%
mutate(cumulative = cumsum(a[,4]))
有没有办法忽略NaN值的同时求和?
解决方法
您可以将NA
替换为0,然后使用cumsum
:
df$cum_a <- cumsum(replace(df$marketed_adjusted_return,is.na(df$marketed_adjusted_return),0))
,
在做cumsum时只需忽略NaN
:
a$cumsum <- replace(a[,4],!is.nan(a[,4]),cumsum(a[,4][!is.nan(a[,4])]))
a
#> date S.P.ASX.200 portfolio.average marketed_adjusted_return cumsum
#> 612 2017-12-26 0.000000e+00 NaN NaN NaN
#> 613 2017-12-27 3.295056e-05 NaN NaN NaN
#> 614 2017-12-28 2.998402e-03 NaN NaN NaN
#> 615 2017-12-29 -3.777862e-03 NaN NaN NaN
#> 616 2018-01-01 0.000000e+00 NaN NaN NaN
#> 617 2018-01-02 -6.265354e-04 0.001210748 -1.837284e-03 -0.0018372838
#> 618 2018-01-03 1.501328e-03 0.001505680 -4.351903e-06 -0.0018416358
#> 619 2018-01-04 1.103716e-03 0.001266719 -1.630024e-04 -0.0020046381
#> 620 2018-01-05 7.437758e-03 0.005948840 1.488918e-03 -0.0005157198
#> 621 2018-01-08 1.323032e-03 0.000949433 3.735992e-04 -0.0001421206
#> 622 2018-01-09 8.808561e-04 -0.004778887 5.659743e-03 0.0055176229
#> 623 2018-01-10 -6.372437e-03 -0.007316033 9.435959e-04 0.0064612187
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。