首页 文章

从R到SPSS获取多行utf-8数据(2900列)

提问于
浏览
0

是否有一种故障保护方法来获取包含多行utf8文本的单元格的数据,其中包含从R到SPSS的多列?优选具有保守类型 .

  • 如果您说CSV,您可能没有尝试使用包含多行文本和utf8字符的临时单元格传输2700列 . 这似乎不可能 .

  • 如果偶尔有一些包含多行的单元格,SPSS将失败(将在几种情况下看到它, DELCASE 不解决这个问题并要求您知道列数) .

  • OpenOffice可以正确处理字符集和多行,但它无法处理那么多列 .

  • Excel可以处理许多列 . 默认情况下,它会打开以逗号分隔的文件,而不是正确的制表符分隔文件,但它会破坏变音符号 . 如果使用import-feature修复utf-8,它会破坏多行文本 .

  • 如果你说 xlsx::write.xlsx :这是有效的,但需要花费很长时间(10米),在SPSS吃掉生成的xlsx文件之前,我必须手动打开并在Excel中重新保存它们(我不喜欢它们,它认为它们是单栏) .

  • 我还没有尝试过设置数据库并在Excel或SPSS中使用RMySQL ODBC,因为它似乎有点矫枉过正 . 在比较中似乎没有那么矫枉过正,但现在我怀疑ODBC将在Excel或SPSS中做它应该做的事情 . 这是一种经证实的方式吗?

Edit: 在回复一条评论建议 foreign::writeForeign

writeForeign不直接保存到.sav,它会像这样保存一个CSV文件 write.table(dfn, file = datafile, row.names = FALSE, col.names = FALSE, sep = ",", quote = FALSE, na = "", eol = ",\n") 并生成.sps文件以便导入 .

它因我的原始数据而失败,因为我的变量名称超过8个字符(我会通过截断得到重复的名称,2700变量并不奇怪.SPSS实际上可以使用我描述的路由来处理它) . 如果我使用一个设计用于展示已知缺陷的子集,则会失败并显示“无法处理超过255的字符变量”,但如果一般情况下多线字符输入失败也不会感到惊讶,因为SPSS不会似乎能够在CSV导入期间处理此问题 .

1 回答

  • 0

    我仍然没有离开ODBC路由,因为 xlsx 包的效果比预期的要好 .

    要修复大表所带来的 java.lang.OutOfMemoryError: Java heap space 错误,我使用 options( java.parameters = "-Xmx3g" ) (在加载xlsx库之前) .

    也就是说,我仍然在寻找一个不涉及手动重新保存Excel文档的答案 .

相关问题