微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在忽略r

如何解决在忽略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 举报,一经查实,本站将立刻删除。