自动定义表和列,从SPSS等统计数据包创建RDBMS

时间:2012-08-29 19:48:41

标签: sql r rdbms spss

用于自动化或半自动化(即提供良好的开端)的好工具是从SPSS等统计软件包中获取矩形数据的过程,并且:

  • 以文本格式保存主要矩形数据,可以由数据库读取
  • 保存其他参考表的其他文件(例如价值标签)
  • 使用SQL绘制脚本或批处理文件(可能需要手工打磨)以在数据库中创建表和列,并将文本文件作为数据行导入相关表中?

我怀疑完全自动化是可能的,但这必须是一个相当普遍的任务。我们有大约十几个这样的数据集,其中一些有几百个变量,我们想要在关系数据库中建立(如果有任何不同,可以使用Oracle)。除了过高的成本外,手工操作没有任何概念上的困难。

我觉得必须有这样的工具,但我显然是在错误的地方搜索或使用错误的术语。

(编辑 - 添加了R标签,因为在我自己的答案中我将其作为解决方案的一部分使用)

2 个答案:

答案 0 :(得分:1)

在SPSS Statistics中,输出管理系统(OMS)可以将任何输出表捕获为数据集。统计数据可以将数据集直接写回数据库,也可以保存为CSV文件或其他格式。请参阅后者的SAVE TRANSLATE。

HTH, 乔恩佩克

答案 1 :(得分:0)

好的,经过进一步的调查(感谢我给出的答案,虽然不完全有帮助但这很有帮助),我现在赞成:

  1. 将数据带入R,例如使用外包
  2. 为我需要的每个参考表创建数据框
  3. 使用as.numeric()unclass()版本替换原始因素,因此只是数字,而不是标签
  4. 使用RODBC软件包中的sqlSave()将主数据和参考表保存到数据库中。
  5. 通过这样的小功能来促进步骤2:

    factorToRef <- function(x, field){
        tmp <- levels(x)
        tab <- data.frame(1:length(tmp), tmp)
        names(tab) <- paste(field, c("_ID","_NAME"), sep="")
        tab
    }
    

    哪个可以给出像

    这样的结果
    > data(iris)
    > factorToRef(iris$Species, "species" )
      species_ID species_NAME
    1          1       setosa
    2          2   versicolor
    3          3    virginica
    

    然后,这是要保存在数据库中的参考表的基础。