我以前在spss.system.file包中使用过几次memisc函数,而且它总是没有错误地工作。但是,最近我尝试导入了几个包含字符串变量的SPSS文件。似乎每当我使用spss.system.file导入这些变量时,就会产生6列额外的空空间。例如,如果以下字符向量是SPSS中的字符串变量:
Age <- c("18 years old", "18 years old", "24", "19 years old", "18", "18")
使用spss.system.file将其读入R中将产生一
我的SPSS数据集包含两个变量,分别是time1和time2,标签是time1和time2。最后,我想使用Python读取变量并修改它们。作为一个简单的测试,我试图用"hello"替换"hello"的每个条目。这是我使用的SPSS语法:
begin program python.
import spss, spssdata
data = spssdata.Spssdata(indexes=["time1"], accessType="w")
for row in data:
data.setvalue("tim
有没有一种“本地”SPSS方法来循环一些变量名称?我要做的就是获取一个变量列表(我定义了这些变量),并为它们运行相同的过程:
伪码-不是一个很好的例子,但我明白了.
for i in varlist['a','b','c']
do
FREQUENCIES VARIABLES=varlist[i] / ORDER=ANALYSIS.
end
我注意到,人们似乎只是使用R或Python插件来实现这种基本的数组功能,但我不知道在我安装SPSS时多久才能配置好这些插件。
SPSS必须有一些本土的方式来做this...right吗?
我希望工作的SPSS文件(.sav)使用pandas。在没有SPSS程序的情况下,以下是转换为.csv时典型文件的样子:
在调查前两行的含义时(我不知道SPSS),似乎第一行包含Labels,而第二行包含VarNames。
因此,当我把这份文件带到熊猫里时:
import pandas.rpy.common as com
def savtocsv(filename):
w = com.robj.r('foreign::read.spss("%s", to.data.frame=TRUE)' % filename)
w = c
我有一个SPSS文件,但没有SPSS。所以我想在R.
如果我打开它使用:
library(foreign)
dat <- read.spss("file.sav", to.data.frame=TRUE)
我收到警告了
re-encoding from CP1252
Warning message:
In `levels<-`(`*tmp*`, value = if (nl == nL) as.character(labels) else paste0(labels, :
duplicated levels in factors are deprecated
我已经根据变量名中的字符串选择了我需要的变量。我不知道如何在我的SPSS文件中只保留这些变量。
begin program.
import spss,spssaux
spssaux.OpenDataFile(r'XXXX.sav')
target_string = 'qb2'
variables = [var for var in spssaux.GetVariableNamesList() if target_string in var]
vars = spssaux.VariableDict().expand(variables)
nvars=len(var
R版本: 2.12.2 / OS: Windows XP
我需要查询和操作的数据存储在一个SPSS .sav文件(大小约112MB)中,并且我对SPSS语法有非常基本的了解。我更喜欢使用R(通常更喜欢用于数据操作和分析),所以我将SPSS文件保存为制表符分隔的文件(大小约为85MB),并尝试使用RODBC包中的功能对其进行查询。
使用Windows控制面板上管理工具组中的'Data Sources (ODBC)‘应用程序,我设置了一个数据库(Windows文件夹),其中包含带有Microsoft Text Driver的表(以制表符分隔的文件)。
当前感兴趣的表有一个'Date
我正在寻找一个在SPSS中重命名变量的解决方案。由于工作场所的软件限制,我不能使用Python。
目标是将变量重命名为"oldname_new“。我尝试过像这样“做重复”,但它不能与重命名函数组合。
do repeat x= var1 to var100.
rename var (x=concat("x","_new")).
end repeat print.
exe.
另外,我认为即使没有do repeat,重命名命令也不允许concat和类似的命令?对吗?
那么,在SPSS中有什么解决办法吗?
所以我发现了SPSS的python扩展,一切都很好,我现在已经创建了一些脚本,并将它们包含在扩展图中,它工作得很好。然而,现在我已经创建了几个需要参数的脚本,我想我可以遵循相同的方法,但我想没有。
def Run(args):
import spss
def testing_p(variables):
all_variables = [spss.GetVariableName(i) for i in range(spss.GetVariableCount())]
variable_nr = [all_variables.index(i) for
我用Python创建了一个自定义扩展命令。我安装了它,但正如我所料,我正在收到错误(引用SPSS日志输出--我知道在SPSS中调试Python程序的唯一方法):
Extension command TEST_EXTENSION could not be loaded. The module or a module that it requires may be missing, or there may be syntax errors in it.
错误可能来自.xml或Run(args)函数。我正在实现的CustomFunction()经过了彻底的测试。
调试这个和其他潜在错误的好方法