2

通常我更喜欢使用 保存我的 R 对象,saveRDS以便以后可以使用df= readRDS(...). 有时我想在 stata 中做点什么。那么有没有办法打开saveRDS在stata中保存的文件?

4

1 回答 1

6

必须从 Stata 读取以 R 的二进制格式存储的变量,这表明您的数据管理策略不可靠。如果要读取多种格式的数据,则应使用非平台特定格式。这通常意味着基于文本的格式(CSV或制表符分隔或XMLJSON),或数据库,或记录良好的标准化二进制格式(HDF5)。

要解决您的情况,您需要一个resave读取 RDS 文件并以新格式输出的函数。就像是

resave <- function(infile)
{
  x <- readRDS(infile)
  outfile <- sub("\\.rds$", "\\.csv", infile)
  write.csv(x, outfile)
}

另一种可能的策略是根据需要转换文件foreign::write.dta。这在StatLore 博客上有所描述。如果您只是偶尔使用 Stata,这可能是一个更好的策略。

这个想法是你有一个重新保存文件的 R 代码批处理文件,然后你使用 Stata 的shell命令以批处理模式调用 R。

shell "<path to R>\R.exe" CMD BATCH resaveAsDta.R

然后你可以use正常的 DTA 文件。

于 2013-02-17T19:29:01.953 回答