如果向量在R中包含NA值,如何找到累积和?

累积总和是连续值的总和,我们可以将其用于任何数值矢量或R数据帧的一列。但是,如果存在一个NA,则我们需要跳过它,因此,累加总和的大小将减少NA值的数量。如果向量中有NA值,则在使用!is.na使用cumsum函数计算累积和时,可以忽略它们。

例子

> x1<-c(1:10,NA)

> x1

输出结果

[1] 1 2 3 4 5 6 7 8 9 10 NA
> cumsum(x1[!is.na(x1)])

[1] 1 3 6 10 15 21 28 36 45 55

示例

> x2<-sample(1:10,50,replace=TRUE)

> x2

输出结果

[1] 10 5 4 1 2 3 9 5 8 10 10 3 8 4 8 7 6 8 2 4 4 9 7 7 9

[26] 9 3 7 2 7 10 6 6 3 5 5 6 9 1 9 3 1 10 3 5 6 8 7 3 7

> cumsum(x2[!is.na(x2)])

输出结果

[1] 10 15 19 20 22 25 34 39 47 57 67 70 78 82 90 97 103 111 113

[20] 117 121 130 137 144 153 162 165 172 174 181 191 197 203 206 211 216 222 231

[39] 232 241 244 245 255 258 263 269 277 284 287 294

示例

> x3<-sample(c(1:10,NA),50,replace=TRUE)

> x3

输出结果

[1] 6 5 3 6 9 8 9 10 NA 8 4 10 10 4 4 NA 8 4 6 5 2 10 2 2 4

[26] 10 9 NA NA 5 3 3 6 10 5 5 9 4 7 1 3 4 NA 7 3 6 7 5 8 6

> cumsum(x3[!is.na(x3)])

输出结果

[1] 6 11 14 20 29 37 46 56 64 68 78 88 92 96 104 108 114 119 121

[20] 131 133 135 139 149 158 163 166 169 175 185 190 195 204 208 215 216 219 223

[39] 230 233 239 246 251 259 265

示例

> x4<-sample(c(2,5,10,15,NA),50,replace=TRUE)

> x4

输出结果

[1] 2 NA NA 2 NA 2 5 10 NA 5 NA 5 NA NA 15 2 NA NA 10 10 5 NA 15 15 5

[26] NA 15 15 2 10 NA 5 5 10 NA 10 5 10 NA 5 2 2 15 10 10 10 2 5 2 5

> cumsum(x4[!is.na(x4)])

输出结果

[1] 2 4 6 11 21 26 31 46 48 58 68 73 88 103 108 123 138 140 150

[20] 155 160 170 180 185 195 200 202 204 219 229 239 249 251 256 258 263

示例

> x5<-sample(c(sample(c(100:120,NA),1000,replace=TRUE)),50,replace=TRUE)

> x5

输出结果

[1] 120 112 117 105 104 NA 107 109 117 114 108 103 117 113 108 110 110 107 118

[20] 101 119 108 108 106 116 120 116 NA 104 107 100 119 102 107 116 119 117 107

[39] 111 109 103 100 116 104 109 108 117 NA NA 114

> cumsum(x5[!is.na(x5)])

输出结果

[1] 120 232 349 454 558 665 774 891 1005 1113 1216 1333 1446 1554 1664

[16] 1774 1881 1999 2100 2219 2327 2435 2541 2657 2777 2893 2997 3104 3204 3323

[31] 3425 3532 3648 3767 3884 3991 4102 4211 4314 4414 4530 4634 4743 4851 4968

[46] 5082

示例

> x6<-sample(c(rnorm(10),NA),50,replace=TRUE)

> x6

输出结果

[1] 0.6251684 -0.9355181 -0.5358416 0.3970438 -0.6420775 -0.6420775

[7] 0.7146878 -0.3347836 0.7146878 0.6359577 -0.3347836 1.0612153

[13] 0.7146878 NA 0.3970438 0.6640442 0.6359577 -0.5358416

[19] -0.6420775 NA -0.9355181 0.3970438 0.7146878 0.7146878

[25] NA NA 0.3970438 -0.3347836 0.6640442 -0.9355181

[31] 0.6251684 0.6251684 NA 0.6640442 0.6640442 0.6640442

[37] 0.7146878 0.7146878 -0.9355181 1.0612153 0.6359577 0.6359577

[43] 0.6640442 NA -0.5358416 0.6359577 NA -0.9355181

[49] 0.7146878 1.0612153

> cumsum(x6[!is.na(x6)])

输出结果

[1] 0.625168430 -0.310349665 -0.846191269 -0.449147437 -1.091224896

[6] -1.733302356 -1.018614583 -1.353398134 -0.638710361 -0.002752681

[11] -0.337536232 0.723679044 1.438366817 1.835410648 2.499454829

[16] 3.135412509 2.599570905 1.957493446 1.021975351 1.419019183

[21] 2.133706956 2.848394728 3.245438560 2.910655010 3.574699191

[26] 2.639181096 3.264349526 3.889517956 4.553562137 5.217606318

[31] 5.881650499 6.596338271 7.311026044 6.375507949 7.436723225

[36] 8.072680905 8.708638585 9.372682765 8.836841161 9.472798841

[41] 8.537280746 9.251968519 10.313183795

示例

> x7<-sample(c(rpois(5,2),NA),50,replace=TRUE)

> x7

输出结果

[1] 5 2 NA NA 2 5 2 5 2 2 2 5 2 2 2 2 2 NA 5 2 5 5 3 3 2

[26] 5 NA NA 5 5 2 5 5 2 2 NA 5 2 NA 3 2 5 2 2 NA NA 2 NA NA 2

> cumsum(x7[!is.na(x7)])

输出结果

[1] 5 7 9 14 16 21 23 25 27 32 34 36 38 40 42 47 49 54 59

[20] 62 65 67 72 77 82 84 89 94 96 98 103 105 108 110 115 117 119 121

[39] 123

示例

> x8<-sample(c(runif(10,2,5),NA),50,replace=TRUE)

> x8

输出结果

[1] NA 4.251011 3.877430 3.144553 3.144553 3.053629 3.053629 4.755601

[9] 3.694577 3.144553 3.877430 4.251011 3.694577 3.694577 2.142446 3.053629

[17] 3.694577 3.634964 NA 3.144553 NA 3.039430 4.251011 4.105852

[25] 4.251011 3.634964 NA 2.142446 4.251011 3.877430 4.105852 3.877430

[33] 4.105852 3.053629 NA 4.105852 3.694577 NA 3.144553 4.755601

[41] 3.053629 3.694577 NA 4.251011 4.251011 4.755601 3.634964 4.755601

[49] 3.694577 3.694577

> cumsum(x8[!is.na(x8)])

输出结果

[1] 4.251011 8.128441 11.272994 14.417547 17.471176 20.524805

[7] 25.280406 28.974983 32.119536 35.996966 40.247977 43.942554

[13] 47.637131 49.779577 52.833207 56.527784 60.162748 63.307301

[19] 66.346731 70.597742 74.703594 78.954605 82.589569 84.732016

[25] 88.983027 92.860457 96.966309 100.843739 104.949590 108.003220

[31] 112.109072 115.803649 118.948202 123.703802 126.757432 130.452009

[37] 134.703019 138.954030 143.709631 147.344596 152.100196 155.794773

[43] 159.489350

示例

> x9<-sample(c(rexp(5,2),NA),50,replace=TRUE)

> x9

输出结果

[1] 1.10889027 1.15796798 NA 0.17418154 0.04162214 1.10889027

[7] 0.01356318 0.01356318 0.01356318 1.15796798 0.17418154 0.17418154

[13] 0.04162214 1.15796798 NA 0.17418154 1.10889027 NA

[19] 1.10889027 0.01356318 NA 0.04162214 1.10889027 0.01356318

[25] 0.04162214 0.04162214 1.15796798 1.10889027 0.17418154 NA

[31] 1.15796798 0.04162214 0.01356318 1.15796798 0.17418154 0.04162214

[37] 1.15796798 NA 0.01356318 NA 1.15796798 0.01356318

[43] NA 1.10889027 1.15796798 1.10889027 1.10889027 0.17418154

[49] 0.01356318 1.10889027

> cumsum(x9[!is.na(x9)])

输出结果

[1] 1.108890 2.266858 2.441040 2.482662 3.591552 3.605115 3.618679

[8] 3.632242 4.790210 4.964391 5.138573 5.180195 6.338163 6.512344

[15] 7.621235 8.730125 8.743688 8.785310 9.894201 9.907764 9.949386

[22] 9.991008 11.148976 12.257866 12.432048 13.590016 13.631638 13.645201

[29] 14.803169 14.977351 15.018973 16.176941 16.190504 17.348472 17.362035

[36] 18.470925 19.628893 20.737784 21.846674 22.020855 22.034419 23.143309

以上是 如果向量在R中包含NA值,如何找到累积和? 的全部内容, 来源链接: utcz.com/z/341222.html

回到顶部