
Interpolate time series with error handling
Source:R/10-data-processing.R
interpolate_time_series.RdInterpolate time series with error handling
Usage
interpolate_time_series(
data,
value_columns,
target_days,
method = "linear",
fill_na_method = "extend",
validate_input = TRUE
)Arguments
- data
Data frame with Day column and value columns
- value_columns
Vector with names of columns to interpolate
- target_days
Vector of target days
- method
Interpolation method ("linear", "constant", "spline")
- fill_na_method
Method to fill missing values ("extend", "zero", "mean")
- validate_input
Validate input structure, default TRUE
Value
A data.frame with one row per element of target_days.
The first column is Day (integer). Subsequent columns correspond
to value_columns, each containing the interpolated numeric values
at the requested days. NA values are resolved according to
fill_na_method: "extend" fills with the nearest valid
value, "zero" replaces with 0, and "mean" uses the
column mean.
Examples
temp_data <- data.frame(Day = c(1, 100, 200, 365),
Temperature = c(5, 15, 18, 7))
interpolate_time_series(temp_data, value_columns = "Temperature",
target_days = 1:365)
#> Day Temperature
#> 1 1 5.000000
#> 2 2 5.101010
#> 3 3 5.202020
#> 4 4 5.303030
#> 5 5 5.404040
#> 6 6 5.505051
#> 7 7 5.606061
#> 8 8 5.707071
#> 9 9 5.808081
#> 10 10 5.909091
#> 11 11 6.010101
#> 12 12 6.111111
#> 13 13 6.212121
#> 14 14 6.313131
#> 15 15 6.414141
#> 16 16 6.515152
#> 17 17 6.616162
#> 18 18 6.717172
#> 19 19 6.818182
#> 20 20 6.919192
#> 21 21 7.020202
#> 22 22 7.121212
#> 23 23 7.222222
#> 24 24 7.323232
#> 25 25 7.424242
#> 26 26 7.525253
#> 27 27 7.626263
#> 28 28 7.727273
#> 29 29 7.828283
#> 30 30 7.929293
#> 31 31 8.030303
#> 32 32 8.131313
#> 33 33 8.232323
#> 34 34 8.333333
#> 35 35 8.434343
#> 36 36 8.535354
#> 37 37 8.636364
#> 38 38 8.737374
#> 39 39 8.838384
#> 40 40 8.939394
#> 41 41 9.040404
#> 42 42 9.141414
#> 43 43 9.242424
#> 44 44 9.343434
#> 45 45 9.444444
#> 46 46 9.545455
#> 47 47 9.646465
#> 48 48 9.747475
#> 49 49 9.848485
#> 50 50 9.949495
#> 51 51 10.050505
#> 52 52 10.151515
#> 53 53 10.252525
#> 54 54 10.353535
#> 55 55 10.454545
#> 56 56 10.555556
#> 57 57 10.656566
#> 58 58 10.757576
#> 59 59 10.858586
#> 60 60 10.959596
#> 61 61 11.060606
#> 62 62 11.161616
#> 63 63 11.262626
#> 64 64 11.363636
#> 65 65 11.464646
#> 66 66 11.565657
#> 67 67 11.666667
#> 68 68 11.767677
#> 69 69 11.868687
#> 70 70 11.969697
#> 71 71 12.070707
#> 72 72 12.171717
#> 73 73 12.272727
#> 74 74 12.373737
#> 75 75 12.474747
#> 76 76 12.575758
#> 77 77 12.676768
#> 78 78 12.777778
#> 79 79 12.878788
#> 80 80 12.979798
#> 81 81 13.080808
#> 82 82 13.181818
#> 83 83 13.282828
#> 84 84 13.383838
#> 85 85 13.484848
#> 86 86 13.585859
#> 87 87 13.686869
#> 88 88 13.787879
#> 89 89 13.888889
#> 90 90 13.989899
#> 91 91 14.090909
#> 92 92 14.191919
#> 93 93 14.292929
#> 94 94 14.393939
#> 95 95 14.494949
#> 96 96 14.595960
#> 97 97 14.696970
#> 98 98 14.797980
#> 99 99 14.898990
#> 100 100 15.000000
#> 101 101 15.030000
#> 102 102 15.060000
#> 103 103 15.090000
#> 104 104 15.120000
#> 105 105 15.150000
#> 106 106 15.180000
#> 107 107 15.210000
#> 108 108 15.240000
#> 109 109 15.270000
#> 110 110 15.300000
#> 111 111 15.330000
#> 112 112 15.360000
#> 113 113 15.390000
#> 114 114 15.420000
#> 115 115 15.450000
#> 116 116 15.480000
#> 117 117 15.510000
#> 118 118 15.540000
#> 119 119 15.570000
#> 120 120 15.600000
#> 121 121 15.630000
#> 122 122 15.660000
#> 123 123 15.690000
#> 124 124 15.720000
#> 125 125 15.750000
#> 126 126 15.780000
#> 127 127 15.810000
#> 128 128 15.840000
#> 129 129 15.870000
#> 130 130 15.900000
#> 131 131 15.930000
#> 132 132 15.960000
#> 133 133 15.990000
#> 134 134 16.020000
#> 135 135 16.050000
#> 136 136 16.080000
#> 137 137 16.110000
#> 138 138 16.140000
#> 139 139 16.170000
#> 140 140 16.200000
#> 141 141 16.230000
#> 142 142 16.260000
#> 143 143 16.290000
#> 144 144 16.320000
#> 145 145 16.350000
#> 146 146 16.380000
#> 147 147 16.410000
#> 148 148 16.440000
#> 149 149 16.470000
#> 150 150 16.500000
#> 151 151 16.530000
#> 152 152 16.560000
#> 153 153 16.590000
#> 154 154 16.620000
#> 155 155 16.650000
#> 156 156 16.680000
#> 157 157 16.710000
#> 158 158 16.740000
#> 159 159 16.770000
#> 160 160 16.800000
#> 161 161 16.830000
#> 162 162 16.860000
#> 163 163 16.890000
#> 164 164 16.920000
#> 165 165 16.950000
#> 166 166 16.980000
#> 167 167 17.010000
#> 168 168 17.040000
#> 169 169 17.070000
#> 170 170 17.100000
#> 171 171 17.130000
#> 172 172 17.160000
#> 173 173 17.190000
#> 174 174 17.220000
#> 175 175 17.250000
#> 176 176 17.280000
#> 177 177 17.310000
#> 178 178 17.340000
#> 179 179 17.370000
#> 180 180 17.400000
#> 181 181 17.430000
#> 182 182 17.460000
#> 183 183 17.490000
#> 184 184 17.520000
#> 185 185 17.550000
#> 186 186 17.580000
#> 187 187 17.610000
#> 188 188 17.640000
#> 189 189 17.670000
#> 190 190 17.700000
#> 191 191 17.730000
#> 192 192 17.760000
#> 193 193 17.790000
#> 194 194 17.820000
#> 195 195 17.850000
#> 196 196 17.880000
#> 197 197 17.910000
#> 198 198 17.940000
#> 199 199 17.970000
#> 200 200 18.000000
#> 201 201 17.933333
#> 202 202 17.866667
#> 203 203 17.800000
#> 204 204 17.733333
#> 205 205 17.666667
#> 206 206 17.600000
#> 207 207 17.533333
#> 208 208 17.466667
#> 209 209 17.400000
#> 210 210 17.333333
#> 211 211 17.266667
#> 212 212 17.200000
#> 213 213 17.133333
#> 214 214 17.066667
#> 215 215 17.000000
#> 216 216 16.933333
#> 217 217 16.866667
#> 218 218 16.800000
#> 219 219 16.733333
#> 220 220 16.666667
#> 221 221 16.600000
#> 222 222 16.533333
#> 223 223 16.466667
#> 224 224 16.400000
#> 225 225 16.333333
#> 226 226 16.266667
#> 227 227 16.200000
#> 228 228 16.133333
#> 229 229 16.066667
#> 230 230 16.000000
#> 231 231 15.933333
#> 232 232 15.866667
#> 233 233 15.800000
#> 234 234 15.733333
#> 235 235 15.666667
#> 236 236 15.600000
#> 237 237 15.533333
#> 238 238 15.466667
#> 239 239 15.400000
#> 240 240 15.333333
#> 241 241 15.266667
#> 242 242 15.200000
#> 243 243 15.133333
#> 244 244 15.066667
#> 245 245 15.000000
#> 246 246 14.933333
#> 247 247 14.866667
#> 248 248 14.800000
#> 249 249 14.733333
#> 250 250 14.666667
#> 251 251 14.600000
#> 252 252 14.533333
#> 253 253 14.466667
#> 254 254 14.400000
#> 255 255 14.333333
#> 256 256 14.266667
#> 257 257 14.200000
#> 258 258 14.133333
#> 259 259 14.066667
#> 260 260 14.000000
#> 261 261 13.933333
#> 262 262 13.866667
#> 263 263 13.800000
#> 264 264 13.733333
#> 265 265 13.666667
#> 266 266 13.600000
#> 267 267 13.533333
#> 268 268 13.466667
#> 269 269 13.400000
#> 270 270 13.333333
#> 271 271 13.266667
#> 272 272 13.200000
#> 273 273 13.133333
#> 274 274 13.066667
#> 275 275 13.000000
#> 276 276 12.933333
#> 277 277 12.866667
#> 278 278 12.800000
#> 279 279 12.733333
#> 280 280 12.666667
#> 281 281 12.600000
#> 282 282 12.533333
#> 283 283 12.466667
#> 284 284 12.400000
#> 285 285 12.333333
#> 286 286 12.266667
#> 287 287 12.200000
#> 288 288 12.133333
#> 289 289 12.066667
#> 290 290 12.000000
#> 291 291 11.933333
#> 292 292 11.866667
#> 293 293 11.800000
#> 294 294 11.733333
#> 295 295 11.666667
#> 296 296 11.600000
#> 297 297 11.533333
#> 298 298 11.466667
#> 299 299 11.400000
#> 300 300 11.333333
#> 301 301 11.266667
#> 302 302 11.200000
#> 303 303 11.133333
#> 304 304 11.066667
#> 305 305 11.000000
#> 306 306 10.933333
#> 307 307 10.866667
#> 308 308 10.800000
#> 309 309 10.733333
#> 310 310 10.666667
#> 311 311 10.600000
#> 312 312 10.533333
#> 313 313 10.466667
#> 314 314 10.400000
#> 315 315 10.333333
#> 316 316 10.266667
#> 317 317 10.200000
#> 318 318 10.133333
#> 319 319 10.066667
#> 320 320 10.000000
#> 321 321 9.933333
#> 322 322 9.866667
#> 323 323 9.800000
#> 324 324 9.733333
#> 325 325 9.666667
#> 326 326 9.600000
#> 327 327 9.533333
#> 328 328 9.466667
#> 329 329 9.400000
#> 330 330 9.333333
#> 331 331 9.266667
#> 332 332 9.200000
#> 333 333 9.133333
#> 334 334 9.066667
#> 335 335 9.000000
#> 336 336 8.933333
#> 337 337 8.866667
#> 338 338 8.800000
#> 339 339 8.733333
#> 340 340 8.666667
#> 341 341 8.600000
#> 342 342 8.533333
#> 343 343 8.466667
#> 344 344 8.400000
#> 345 345 8.333333
#> 346 346 8.266667
#> 347 347 8.200000
#> 348 348 8.133333
#> 349 349 8.066667
#> 350 350 8.000000
#> 351 351 7.933333
#> 352 352 7.866667
#> 353 353 7.800000
#> 354 354 7.733333
#> 355 355 7.666667
#> 356 356 7.600000
#> 357 357 7.533333
#> 358 358 7.466667
#> 359 359 7.400000
#> 360 360 7.333333
#> 361 361 7.266667
#> 362 362 7.200000
#> 363 363 7.133333
#> 364 364 7.066667
#> 365 365 7.000000