Skip to content

add %tq date format #65

@JanMarvin

Description

@JanMarvin

A possible fix

diff --git a/R/read.R b/R/read.R
index b120e07..8926c73 100644
--- a/R/read.R
+++ b/R/read.R
@@ -341,6 +341,20 @@ read.dta13 <- function(file, convert.factors = TRUE, generate.factors=FALSE,
       z <- z - rowSums(outer(z, ls, ">="))
       as.POSIXct(z, origin = "1960-01-01")
     }
+    
+    convert_dt_q <- function(x) { 
+      z <- x / 4 
+      qrt <- z - floor(z)
+      z <- 1960 + floor(z)
+      
+      z[qrt == 0.00] <- paste0(z[qrt == 0.00], "-1-1")
+      z[qrt == 0.25] <- paste0(z[qrt == 0.25], "-4-1")
+      z[qrt == 0.50] <- paste0(z[qrt == 0.50], "-7-1")
+      z[qrt == 0.75] <- paste0(z[qrt == 0.75], "-10-1")
+      
+      z <- as.Date(z, "%Y-%m-%d")
+      z
+    }
 
     ff <- attr(data, "formats")
     ## dates <- grep("%-*d", ff)
@@ -359,6 +373,7 @@ read.dta13 <- function(file, convert.factors = TRUE, generate.factors=FALSE,
 
     for (v in grep("%tc", ff)) data[[v]] <- convert_dt_c(data[[v]])
     for (v in grep("%tC", ff)) data[[v]] <- convert_dt_C(data[[v]])
+    for (v in grep("%tq", ff)) data[[v]] <- convert_dt_q(data[[v]])
   }
 
   if (convert.factors) {

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions