Sas 如何在255处停止截断字符串

Sas 如何在255处停止截断字符串,sas,spss,Sas,Spss,我无法将长字符串变量从SAS导出到SPSS DATA testString; INPUT testString $ 300.; testLength=LENGTH(testString); DATALINES; abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmn

我无法将长字符串变量从SAS导出到SPSS

DATA testString;
INPUT testString $ 300.;
testLength=LENGTH(testString);
DATALINES;
abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz
;
RUN;

PROC EXPORT
DATA=WORK.teststring
FILE="H:/TestSPSStrucation.sav"
DBMS=SAV
REPLACE;
当我打开导出的SPSS文件时,字符串被截断为255个字符。我尝试过不同的方法,比如将dbms更改为SPSS或混合格式。没有多少结果


生成的SPSS文件testString变量为String类型,宽度为765。向变量添加字符以获得大于255个字符的字符串没有问题。

我认为可以通过扩展字符变量填充(CVP)引擎来解决这个问题。从SAS 9.4开始,请尝试使用带有选项CVPBYTES=#bytes you need?

的libname语句,根据,SAS在导出到SPSS时最多支持256字节(字符)的字符变量。我的猜测是,这是SAS开发SPSS导出引擎时旧版SPSS的一个限制


SPSS能够直接从SAS数据集(a.sas7bdat)导入,这可能是解决这一问题的更好方法。

SPSS支持长度高达32K的字符串变量已有相当一段时间了。您可以尝试使用SPSS过程读取SAS文件目录。文件>打开,或者在语法上是GET TRANSLATE。

看起来有些版本的SPSS有255个字符的限制。我会先检查你的SPSS。在写入SPSS时,导出引擎可能不支持更长的字符串。SPSS对长度超过255个字符的字符串没有问题。我可以编辑生成的文件,并添加几个字符,使其超过255个字符,而不会出现问题。您能给我一个程序,如何在我的示例中应用这个程序吗?不是一个程序,我认为您需要在导入libname expand'SAS data library'cvpmultiplier=2.5之前更改libname语句;或者不管字节数是多少。我没有使用过SPSS数据,但我记得我的一个朋友导入了一个数据集,他需要增加cvpBYTES,但我查阅的文档使我认为CVP乘法器可能是您所需要的,我不确定我是否理解这有什么帮助。当您遇到unicode或DBCS编码问题时,需要使用字符变量填充,但我认为SPSS处理该问题的方式与SAS没有任何不同。这可能是答案,但确实限制了我想要的功能。这就是将带有变量和值标签的数据集直接导出到SPSS文件中,并将其交给相关研究人员。然后我会在communities.sas.com上发布建议。另一个选择是从SAS写出一个文本文件和一个SPSS导入脚本;这是进行这些交换的常见方法。我简短地看了看R是否能帮助您,但它看起来像是
write.foreign(package=SPSS)
与SAS的导出一样糟糕或更糟糕。