R数据文件未转换为Stata文件

时间:2017-08-28 02:08:13

标签: r stata

我收到此错误。想不通为什么?有什么建议吗?

library(foreign)
x <- data.frame(a = "", b = 1, stringsAsFactors = FALSE)
write.dta(x, 'x.dta')
Error in write.dta(x, "x.dta") : 
 4 arguments passed to .Internal(nchar) which requires 3

1 个答案:

答案 0 :(得分:2)

在这种情况下,haven package的效果要好于外来的,因为它会将字符串(包括空字符串)作为字符串值读取。

library( haven )
x <- data.frame( a = "", b = 1, stringsAsFactors = FALSE )
write_dta( x, 'x.dta' )

或者,如果在创建数据框时传递参数a值,而不是空字符串,则外部将没有问题。

x <- data.frame( a = "a", b = 1, stringsAsFactors = FALSE )
write.dta( x,"y.dta" )

当您使用较旧版本的Stata时,可以选择避风港,因为您可以指定您希望dta文件兼容的Stata版本。

write_dta( x, 'x.dta', version = 13 )