- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试提取变量的名称、标签和值标签。我注意到,除了引用 ValueLabels
的分配之外,所有分配都非常快。在我的测试数据集上,如果我注释掉该行,其他所有内容大约需要 1 秒。但仅这一行就使整个代码延迟了大约 15 秒,并且测试数据集并不大(至少按照我的标准:))
这是访问变量字典所固有的吗?或者是否有另一种更快的方式来提取整个字典,而无需逐个变量......?
begin program.
import spss
import spssaux
vardict = spssaux.VariableDict()
var_list=[]
var_values={}
var_type={}
var_labels={}
for i in range(spss.GetVariableCount()):
var=spss.GetVariableName(i)
var_list.append(var)
#this is the line causing the massive delay
var_values[var]=vardict[i].ValueLabels
var_type[var]=str(spss.GetVariableFormat(i)[0])
var_labels[var]=vardict[i].VariableLabel
结束程序。
事实上,我只需要它来检查变量是否定义了值标签。但我不知道如何以其他方式检查这一点。
最佳答案
事实证明,使用 spssaux
模块是这里的罪魁祸首。我不知道为什么,因为几乎所有的互联网知识都指向这种获取值(value)标签的方式。
然而,几乎是偶然,我偶然发现了“spss”模块的帮助,其中指出:
| valueLabels
| Get, set or delete value labels. The set of value labels for a particular variable is represented
| as a Python dictionary whose keys are the values for which labels are being set and whose
| values are the associated labels. Labels must be specified as quoted strings.
|
| --examples
| # Get all value labels for a specified variable
| import spss
| spss.StartDataStep()
| datasetObj = spss.Dataset()
| varObj = datasetObj.varlist['minority']
| vallabels = varObj.valueLabels
| spss.EndDataStep()
由于我只想查看变量是否有(或没有)值标签,因此我创建了一个字典来存储每个变量的 valueLabels 字典的长度:
begin program.
# Get all value labels for a specified variable
import spss
spss.StartDataStep()
datasetObj = spss.Dataset()
var_labels={}
for var in datasetObj.varlist:
var_labels[var.name]=len(var.valueLabels)
spss.EndDataStep()
print var_labels
end program.
即使对于大文件,它也是即时的。 (我承认,“大”的含义可能因用户而异;我在“大”文件上运行 30 分钟后停止了 OP 中的代码,因为它显然不具有时效性)。
关于python - SPSS Python - 访问值标签的快速方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47077004/
我正在处理一个由多回答问题组成的数据集。我想对所有变量运行计数频率并合并图表,以便显示勾选复选框的人数百分比。我无法弄清楚如何让 SPSS 进行多次计数并合并输出图。任何人都有一些见解? 数据集设置完
我正在处理一个由多回答问题组成的数据集。我想对所有变量运行计数频率并合并图表,以便显示勾选复选框的人数百分比。我无法弄清楚如何让 SPSS 进行多次计数并合并输出图。任何人都有一些见解? 数据集设置完
我想将不同的自定义表格放在 Excel 中的不同工作表中。我尝试使用 OMS 和 OUTPUT EXPORT,但这些功能不能满足我的要求。如果有人有想法,我希望这会帮助我。 :) 最佳答案 OUTPU
假设我有两个变量列表 list a: a1 a2 a3 list b: b1 b2 b3 我想以这样的方式处理: TEMPORARY. SELECT IF a1=b1. FREQUENCY someV
我为一年中的每个月设置了一个变量,该变量的值可以是 1(表示该月已检查过的内容)或 SYSMIS。 我如何将其重新编码为一个新变量,例如VAR1 我得到类似的东西 0 = no checks in
根据反馈编辑... 有没有办法将变量从一个打开的数据集复制到 SPSS 中的另一个?我尝试过的是创建一个临时变量来捕获变量的值,并在 Compute 命令中使用该临时变量到下一个数据集: DATASE
我想从另外两个变量创建一个新变量。 第一个是 SEX(0=男性,1=女性;虽然我们已经为这种可能性做好了计划,但受访者没有选择其他性别),而第二个是 RACE9(0=白人,1=种族化)。新变量命名为
我是 SPSS 新手,之前曾接受过 R 和 Stata 培训,但我正在处理的一些调查数据使用 SPSS,因此我被迫转换。 我有一个相对简单的问题 - 创建一个变量后,如何将它移动到另一个变量之后? 例
如何在 SPSS 中运行多组回归,而不必每次都重新键入命令或不必每次都手动更改因变量? 我需要使用相同的自变量运行大量回归,但我需要更改因变量。是否有可能简化此过程? 非常感谢您的帮助。 最佳答案 另
如何在 SPSS 中将所有变量的所有负值标记为缺失?我有一个包含超过 300 个变量的数据集,但没有一个定义了缺失值,但对于所有变量,-1 和 -2 应被视为缺失值。有没有比手动处理每个变量更好的方法
在使用 R 大约五年后,我刚刚开始使用 SPSS(我对此并不满意,但你按照老板告诉你的去做)。我只是想根据分类变量进行简单的计数。 我有一个数据集,其中我知道一个人的出生年份。我已重新编码为一个新变量
如何在 SPSS 中运行多组回归,而不必每次都重新键入命令或不必每次都手动更改因变量? 我需要使用相同的自变量运行大量回归,但我需要更改因变量。是否有可能简化此过程? 非常感谢您的帮助。 最佳答案 另
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: Analyze multiple response field from google doc form 数
我有一个包含不同家庭成员信息的 SPSS 数据集,我需要生成一个新变量来计算组成这些家庭的人数。原始数据集类似于: 编号 |年龄 |高度 332 | 23 | 1.78 332 | 27 | 1.65
对于一个学校项目,我发现自己正在使用人口普查局当前人口调查中的数据。我选择了 SPSS 来处理数据,因为在我有限的时间范围内,它似乎是最容易直接使用的软件。一切看起来都很简单,除了一个给我带来麻烦的操
是否可以在不使用代码的情况下反转 SPSS 图中的轴,比如从 -1,0,1 到 1,0,-1?我只能将轴的坐标从 x 更改为 y 和reverse 这不是我想要的。我知道可以使用代码进行反转(或者他们
在 R 中有 source 函数,您可以在其中从另一个 R 脚本获取 R 脚本。我希望能够在 SPSS 中做同样的事情。 我如何从另一个 SPSS 语法文件获取 SPSS 语法文件? 最佳答案 根据@
我是一名开发人员,负责研究如何使用SPSS收集以前的结果,因此我们可以使用一些新数据重复该过程。我们不能问做原始分析的人,因为可悲的是他不再与我们在一起了,所以我不得不弄清他的所作所为。 我不是统计学
我有大约 300 个变量,我正在计算它们的偏度和峰度。现在,我想创建一个新的变量,它将包含所有那些偏度和峰度在一定范围内的变量的列表。这个想法是只选择那些满足条件的变量并对所有其他变量执行归一化。 计
我所有的数据都在一个 .txt 文件中,字段分隔符是逗号和换行符。所以我使用“Var. File”组件作为源组件。 我想弄清楚如何删除包含空值的行,然后获取输出以进行进一步处理。 最佳答案 要丢弃 I
我是一名优秀的程序员,十分优秀!