Statistical formats (SPSS, Stata, SAS)

Files ending in .sav, .zsav, .por (SPSS), .dta (Stata), .sas7bdat, or .xpt (SAS) are read with haven. Labelled columns are kept as-is; apply haven::as_factor() in your expression if you want to convert them to factors.

SPSS

Reading

rush run -n 'head(df)' survey.sav
#> #!/usr/bin/env -S ir run
#> #| packages:
#> #|   - rush
#> 
#> rush::init(
#>   dpi = 300L
#> )
#> 
#> dfs <- list()
#> dfs[["survey"]] <- rush::read("survey.sav")
#> df <- dfs[[1]]
#> result <- head(df)
#> 
#> rush::write(result)

Writing

rush run -n -o result.sav 'df' data.csv
#> #!/usr/bin/env -S ir run
#> #| packages:
#> #|   - rush
#> 
#> rush::init(
#>   output = "result.sav",
#>   output_format = "sav",
#>   dpi = 300L
#> )
#> 
#> dfs <- list()
#> dfs[["data"]] <- rush::read("data.csv")
#> df <- dfs[[1]]
#> result <- df
#> 
#> rush::write(result)

Stata

Reading

rush run -n 'head(df)' data.dta
#> #!/usr/bin/env -S ir run
#> #| packages:
#> #|   - rush
#> 
#> rush::init(
#>   dpi = 300L
#> )
#> 
#> dfs <- list()
#> dfs[["data"]] <- rush::read("data.dta")
#> df <- dfs[[1]]
#> result <- head(df)
#> 
#> rush::write(result)

Writing

rush run -n -o result.dta 'df' data.csv
#> #!/usr/bin/env -S ir run
#> #| packages:
#> #|   - rush
#> 
#> rush::init(
#>   output = "result.dta",
#>   output_format = "dta",
#>   dpi = 300L
#> )
#> 
#> dfs <- list()
#> dfs[["data"]] <- rush::read("data.csv")
#> df <- dfs[[1]]
#> result <- df
#> 
#> rush::write(result)

SAS

Reading

rush run -n 'head(df)' data.sas7bdat
#> #!/usr/bin/env -S ir run
#> #| packages:
#> #|   - rush
#> 
#> rush::init(
#>   dpi = 300L
#> )
#> 
#> dfs <- list()
#> dfs[["data"]] <- rush::read("data.sas7bdat")
#> df <- dfs[[1]]
#> result <- head(df)
#> 
#> rush::write(result)
rush run -n 'head(df)' data.xpt
#> #!/usr/bin/env -S ir run
#> #| packages:
#> #|   - rush
#> 
#> rush::init(
#>   dpi = 300L
#> )
#> 
#> dfs <- list()
#> dfs[["data"]] <- rush::read("data.xpt")
#> df <- dfs[[1]]
#> result <- head(df)
#> 
#> rush::write(result)

Writing SAS transport

rush run -n -o result.xpt 'df' data.csv
#> #!/usr/bin/env -S ir run
#> #| packages:
#> #|   - rush
#> 
#> rush::init(
#>   output = "result.xpt",
#>   output_format = "xpt",
#>   dpi = 300L
#> )
#> 
#> dfs <- list()
#> dfs[["data"]] <- rush::read("data.csv")
#> df <- dfs[[1]]
#> result <- df
#> 
#> rush::write(result)

Converting between formats

rush convert -o output.sav data.csv
rush convert -o output.dta data.csv
rush convert -o output.xpt data.csv