【问题标题】:Save .dta files with long strings in R在 R 中保存带有长字符串的 .dta 文件
【发布时间】:2017-01-18 12:51:55
【问题描述】:

我必须以 Stata 的 .dta 格式保存一个 R 数据集。 除其他数据外,该数据集还包含一个包含长字符串的单列(第 3 列)。

测试数据:

r_data <- data.frame( ae= 1, be= 2, ce= "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet"
                       ,stringsAsFactors = FALSE )

导出到数据

library(foreign)
write.dta(r_data, file = "r_data.dta")

导致此警告消息: 警告信息:

In write.dta(r_data, file = "r_data.dta") :
  character strings of >244 bytes in column 3 will be truncated

此外,由于错误说明,我根本无法在 Stata (14 SE) 中打开文件:

. use "r_data.dta" 
file not Stata format
    .dta file contains 1 invalid storage-type code.  
File uses invalid codes other than code 0.
    r(610);

如何将较长的字符串保存为 .dta 文件? 首选 R 解决方案,因为我没有使用 Stata 的经验。

PS:通过 CSV 文件的间接路由不起作用,因为在 Stata 中导入时,生成的 CSV 文件对于我的小 RAM 来说太大了。

【问题讨论】:

  • 您想使用readstata13 包,它允许您编写stata 14 文件。不过我还没有调查过长字符串问题。
  • 完美提示。 library(readstata13) save.dta13(r_data,file ="r_data.dta") 解决了这个问题。我会接受它作为答案!

标签: r string stata


【解决方案1】:

老问题,但值得结束:

使用 haven 包写入 Stata 14 格式的 dta 文件。

library(haven)

r_data <- data.frame(ae = 1, be = 2, ce = "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet",
                     stringsAsFactors = FALSE)

write_dta(r_data, "r_data.dta")

【讨论】:

    猜你喜欢
    • 2021-04-23
    • 2011-11-22
    • 1970-01-01
    • 2012-01-10
    • 1970-01-01
    • 1970-01-01
    • 2020-09-17
    • 2020-05-04
    • 2013-11-13
    相关资源
    最近更新 更多