Как использовать обработку ошибок для экспорта данных NA в R?

#r #dataframe #error-handling #time-series #export-to-csv

Вопрос:

Мой Проект

У меня есть проект по анализу временных рядов, который учитывает covid-19 в соответствующих данных. Цель этого проекта заключается в том, чтобы выяснить, есть ли в конкретных районах США пики отпусков. В данный момент я просто пытаюсь провести анализ коинтеграции по округам. Сам код структурирован следующим образом:

Код

 # data import (with example of county data)

 #r #dataframe #error-handling #time-series #export-to-csv



Вопрос:

Мой Проект

У меня есть проект по анализу временных рядов, который учитывает covid-19 в соответствующих данных. Цель этого проекта заключается в том, чтобы выяснить, есть ли в конкретных районах США пики отпусков. В данный момент я просто пытаюсь провести анализ коинтеграции по округам. Сам код структурирован следующим образом:

Код

Ada-Idaho-US` date dailyCases air_temp dew_point RH Rt AppleDriving GoogleWorkplace GoogleResidential 1 2020-02-15 0 2.9854167 -6.5708333 50.68687 NA 118.78 0 0 2 2020-02-16 0 3.7427083 0.2888889 79.56082 NA 82.51 2 -1 3 2020-02-17 0 0.4114583 -5.2430556 67.14985 NA 108.93 -31 6 4 2020-02-18 0 -0.9375000 -8.2875000 59.55483 NA 110.20 1 0 5 2020-02-19 0 -1.1500000 -9.1937500 56.01234 NA 111.88 3 0 #r #dataframe #error-handling #time-series #export-to-csv

Вопрос:

Мой Проект

У меня есть проект по анализу временных рядов, который учитывает covid-19 в соответствующих данных. Цель этого проекта заключается в том, чтобы выяснить, есть ли в конкретных районах США пики отпусков. В данный момент я просто пытаюсь провести анализ коинтеграции по округам. Сам код структурирован следующим образом:

Код

Adair-Iowa-US` date dailyCases air_temp dew_point RH Rt AppleDriving GoogleWorkplace GoogleResidential 1 2020-02-15 0 -2.73611111 -5.25694444 84.26825 NA 160.23 NA NA 2 2020-02-16 0 1.25000000 -1.00000000 86.44410 NA 108.57 NA NA 3 2020-02-17 0 4.04347826 2.28985507 89.20153 NA 112.67 -18 NA 4 2020-02-18 0 -1.01388889 -3.47222222 85.15455 NA 115.56 -3 NA 5 2020-02-19 0 -5.00000000 -6.56944444 89.28397 NA 110.66 2 NA #r #dataframe #error-handling #time-series #export-to-csv

Вопрос:

Мой Проект

У меня есть проект по анализу временных рядов, который учитывает covid-19 в соответствующих данных. Цель этого проекта заключается в том, чтобы выяснить, есть ли в конкретных районах США пики отпусков. В данный момент я просто пытаюсь провести анализ коинтеграции по округам. Сам код структурирован следующим образом:

Код

Adair-Kentucky-US` date dailyCases air_temp dew_point RH Rt AppleDriving GoogleWorkplace GoogleResidential 1 2020-02-15 0 -1.7777778 -8.81944444 62.83071 NA 128.73 NA NA 2 2020-02-16 0 7.1111111 -1.40277778 55.44238 NA 90.26 NA NA 3 2020-02-17 0 6.4861111 1.34722222 72.02267 NA 113.81 -15 NA 4 2020-02-18 0 11.1388889 8.98611111 87.98405 NA 109.42 2 NA 5 2020-02-19 0 3.9027778 -1.12500000 73.60350 NA 102.71 2 NA #r #dataframe #error-handling #time-series #export-to-csv

Вопрос:

Мой Проект

У меня есть проект по анализу временных рядов, который учитывает covid-19 в соответствующих данных. Цель этого проекта заключается в том, чтобы выяснить, есть ли в конкретных районах США пики отпусков. В данный момент я просто пытаюсь провести анализ коинтеграции по округам. Сам код структурирован следующим образом:

Код

Adair-Missouri-US` date dailyCases air_temp dew_point RH Rt AppleDriving GoogleWorkplace GoogleResidential 1 2020-02-15 0 -3.1854167 -8.33541667 68.02969 NA 138.42 9 NA 2 2020-02-16 0 -0.5856647 -3.33323413 82.87856 NA 109.88 17 NA 3 2020-02-17 0 3.4291667 2.00625000 90.70736 NA 122.34 -17 NA 4 2020-02-18 0 1.9875000 -1.98020833 76.70606 NA 113.90 -7 1 5 2020-02-19 0 -2.7800000 -6.25666667 78.25412 NA 121.59 1 -1
 # for loop
for (i in 1:csv_length) {
  count = i
 
  # TIME SERIES CREATION #
  dailyCases        <- DC_timeSeries(count) # select the column in dataset and creates a time series
  airTemp           <- AT_timeSeries(count)
  RH                <- RH_timeSeries(count)
  Rt                <- Rt_timeSeries(count)
  appleDriving      <- AD_timeSeries(count)
  GoogleWorkplace   <- GW_timeSeries(count)
  GoogleResidential <- GR_timeSeries(count)
  
  # save county name as variable
  title <- get_df_name(csv_data, count)

  # plot time series for county
  plot(dailyCases, main = title)
  plot(airTemp, main = title)
  plot(RH, main = title)
  plot(Rt, main = title)
  plot(appleDriving, main = title)
  plot(GoogleWorkplace, main = title)
  plot(GoogleResidential, main = title)
  
  # SYSTEMS CREATION #
  system1 = cbind(Rt, airTemp)
  system2 = cbind(Rt, RH)
  system3 = cbind(Rt, appleDriving)  
  system4 = cbind(Rt, GoogleWorkplace) 
  system5 = cbind(Rt, GoogleResidential)

  # LAG SELECTION #
  lagselect1 = VARselect(system1, lag.max = 7, type = "const")
  K_val1 = strtoi(names(sort(summary(as.factor(lagselect1$selection)), decreasing=T)[1]))-1
  
  lagselect2 = VARselect(system2, lag.max = 7, type = "const")
  K_val2 = strtoi(names(sort(summary(as.factor(lagselect2$selection)), decreasing=T)[1]))-1
  
  lagselect3 = VARselect(system3, lag.max = 7, type = "const")
  K_val3 = strtoi(names(sort(summary(as.factor(lagselect3$selection)), decreasing=T)[1]))-1
  
  lagselect4 = VARselect(system4, lag.max = 7, type = "const")
  K_val4 = strtoi(names(sort(summary(as.factor(lagselect4$selection)), decreasing=T)[1]))-1
  
  lagselect5 = VARselect(system5, lag.max = 7, type = "const")
  K_val5 = strtoi(names(sort(summary(as.factor(lagselect5$selection)), decreasing=T)[1]))-1
  
  # before lag selection function call
  k_vals_vector <- c(K_val1, K_val2, K_val3, K_val4, K_val5)
  
  # after lag selection function call
  k_vals <- set_k_vals(k_vals_vector)
  
  # JOHANSEN TESTS #
  test1 = ca.jo(system1, type='trace', ecdet = 'const', K=k_vals[1])
  test2 = ca.jo(system2, type='trace', ecdet = 'const', K=k_vals[2])
  test3 = ca.jo(system3, type='trace', ecdet = 'const', K=k_vals[3])
  test4 = ca.jo(system4, type='trace', ecdet = 'const', K=k_vals[4])
  test5 = ca.jo(system5, type='trace', ecdet = 'const', K=k_vals[5])
  ... rest of for loop not related to error ...
}
 

The Error Needed to be Handled

Everything works fine for the first and fourth county in the example data, but I get an error for the second and third counties. I scrubbed through both datasets and realized that both of those counties have an empty GoogleResidential data (i.e., all 0). This is what I believe is giving this error:

 Error in solve.default(M11) : Lapack routine dgesv: system is exactly singular: U[2,2] = 0
3. solve.default(M11)
2. solve(M11)
1. ca.jo(system5, type = "trace", ecdet = "const", K = k_vals[5])
 

How the Data Should Be Exported?

Since I have thousands of counties to analyze and some counties don’t have enough or any data (i.e., the column analyzed is all 0), is it possible to use tryCatch() or possibly a monad to take this error and export it to:

 # example of data exported to .csv:
county name | start date | end date | test method* | coefficients* | test statistic* | r values* 
0             0            0          0              0               0                 0

# * = possibly found within the test# formal class data
 

If there is a possible better way of mitigating this, I am open to suggestions! 🙂