首页 > 解决方案 > 在 R 中将多个 .sav 转换为 .csv

问题描述

我想将一堆转换.sav.csv

我有一个这样的文件列表:

c("Congo_MICS5_Datasets/Congo MICS 2014-15 SPSS Datasets/bh.sav", "Congo_MICS5_Datasets/Congo MICS 2014-15 SPSS Datasets/ch.sav", "Congo_MICS5_Datasets/Congo MICS 2014-15 SPSS Datasets/hh.sav")

我如何转换它们并保留文件名?

标签: rcsvspss

解决方案


假设您在可以访问相对路径的工作目录中并假设您正在使用该foreign包并假设您不想要行名(由于问题很稀疏,因此有很多假设):

c(
  "Congo_MICS5_Datasets/Congo MICS 2014-15 SPSS Datasets/bh.sav", 
  "Congo_MICS5_Datasets/Congo MICS 2014-15 SPSS Datasets/ch.sav", 
  "Congo_MICS5_Datasets/Congo MICS 2014-15 SPSS Datasets/hh.sav"
) -> fils

for (fil in fils) {

  write.csv(
    x = foreign::read.spss(file = fil, to.data.frame = TRUE),
    file = sprintf("%s.csv", tools::file_path_sans_ext(fil)),
    row.names = FALSE
  )

}

推荐阅读