我正在翻转我的调查数据,以便可以在 Tableau 中使用它。这是 SPSS 中的示例数据(请记住,每个变量都有值和变量标签)。
ID age rate1 rate2 rate3 mr_1 mr_2 mr_3 ...
1 35 8 3 2 1 2
2 40 2 2 3 2
3 41 6 3 5 2 3
4 43 3 3 1
其中 rate1-3 是 3 个评分问题。 Mr_1 到 mr_3 是一个多选题,检查所有适用的问题(你的种族是什么?1=白人 2=西类牙裔,3=黑人)
我用这个翻转数据:
VARSTOCASES
/MAKE answer FROM age rate1 rate2 rate3 mr_1 mr_2 mr_3
/INDEX=Index1(7)
/KEEP= All
/NULL=KEEP.
结果是这样的:
ID Index1 answer
1 1 35
1 2 8
1 3 3
1 4 2
1 5 1
...
...
...
将此连接到 Tableau 时效果很好。但是,我想要的不仅仅是将 Index1 作为每个已翻转变量的标识符。我想要的是这个(Var、VarLab、ValueLabel 只是字符串变量):
ID Var VarLab answer ValueLabel
1 'age' 'What is your age?' 35 '35'
1 'rate1' 'Rate food' 8 '8'
1 'rate2' 'Rate wait time' 3 '3'
1 'rate3' 'Rate bathroom' 2 '2'
1 'mr_1' 'Ethnicity' 1 'White'
1 'mr_2' 'Ethnicity' 2 'Hispanic'
...
...
...
如您所见,我为每个翻转的变量保留了变量标签、值标签和变量名称本身。这是理想的 Tableau 设置,因为 Tableau 需要“高”数据集。此外,我可以使用响应的字符串或数字表示形式。最后,我不再需要在 Tableau 中编辑别名。任何想法如何完成这个?也许这需要 python 或宏?非常感谢任何想法。
谢谢!
最佳答案
您需要使用 OMS 将字典读入两个数据集 - 一个用于变量标签,一个用于值标签。 然后您可以将重组后的数据集按变量名称与变量标签匹配,然后按变量名称和值将其与值标签匹配。
运行此命令以获取两个数据集 - 当然,在重组之前:
DATASET DECLARE varlab.
OMS /SELECT TABLES /IF COMMANDS=['File Information'] SUBTYPES=['Variable Information']
/DESTINATION FORMAT=SAV OUTFILE='varlab' VIEWER=YES.
DATASET DECLARE vallab.
OMS /SELECT TABLES /IF COMMANDS=['File Information'] SUBTYPES=['Variable Values']
/DESTINATION FORMAT=SAV OUTFILE='vallab' VIEWER=YES.
display dictionary.
omsend.
现在重组和匹配文件 - (在重命名适当的变量以在两个新数据集中进行匹配之后)。
关于database - Vars to cases & retain variable/value labels Tableau setup - 为 Tableau 重组数据,翻转数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43524233/