我收到此错误。想不通为什么?有什么建议吗?
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
答案 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 )