SPSS 按行分组并将字符串连接成一个变量

2023-12-05

我试图导出 SPSS 元数据使用 SPSS 语法转换为自定义格式。具有值标签的数据集包含一个或多个变量标签。

但是,现在我想将每个变量的值标签连接成一个字符串。例如对于变量SEX将行组合或分组F/Female and M/Male转化为一个变量F=Female;M=Male;。我已经使用将代码和标签连接到一个新变量中Compute CodeValueLabel = concat(Code,'=',ValueLabel).所以源数据集的起点是这样的:

+--------------+------+----------------+------------------+
| VarName      | Code | ValueLabel     | CodeValueLabel   |
+--------------+------+----------------+------------------+
| SEX          | F    | Female         | F=Female         |
| SEX          | M    | Male           | M=Male           |
| ICFORM       | 1    | Yes            | 1=Yes            |
| LIMIT_DETECT | 0    | Too low        | 0=Too low        |
| LIMIT_DETECT | 1    | Normal         | 1=Normal         |
| LIMIT_DETECT | 2    | Too high       | 2=Too high       |
| LIMIT_DETECT | 9    | Not applicable | 9=Not applicable |
+--------------+------+----------------+------------------+

目标是获得如下数据集:

+--------------+-------------------------------------------------+
| VarName      | group_and_concatenate                           |
+--------------+-------------------------------------------------+
| SEX          | F=Female;M=Male;                                |
| ICFORM       | 1=Yes;                                          |
| LIMIT_DETECT | 0=Too low;1=Normal;2=Too high;9=Not applicable; |
+--------------+-------------------------------------------------+

我尝试使用案例但这会创建单独的变量,因此多个变量不仅仅是一个字符串变量。我开始怀疑我是否遇到了 SPSS 的极限。虽然也许可以使用一些AGGREGATE or OMS诡计,关于如何做到这一点有什么想法吗?


首先,我在这里重新创建您的示例来演示:

data list list/varName CodeValueLabel (2a30).
begin data
"SEX"  "F=Female"
"SEX"  "M=Male"
"ICFORM"  "1=Yes"
"LIMIT_DETECT"  "0=Too low"
"LIMIT_DETECT"  "1=Normal"
"LIMIT_DETECT"  "2=Too high"
"LIMIT_DETECT"  "9=Not applicable"
end data.

现在开始工作:

* sorting to make sure all labels are bunched together.
sort cases by varName CodeValueLabel.
string combineall (a300).
* adding ";" .
compute combineall=concat(rtrim(CodeValueLabel), ";").
* if this is the same varname as last row, attach the two together.
if $casenum>1 and varName=lag(varName)  
     combineall=concat(rtrim(lag(combineall)), " ", rtrim(combineall)).
exe.
*now to select only relevant lines - first I identify them.
match files /file=* /last=selectthis /by varName.
*now we can delete the rest.
select if selectthis=1.
exe.

注意:使combineall足够宽以包含填充最多的变量的所有值。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SPSS 按行分组并将字符串连接成一个变量 的相关文章

随机推荐

  • 如何计算python中数组中的值与数组之和的比率? [复制]

    这个问题在这里已经有答案了 我有一个这样的数组 array 1 2 3 5 3 4 6 7 2 对于每个成员 我想计算它们与行总和的比率 因此 我在建议样本中的问题的结果是 result 1 1 2 3 2 1 2 3 3 1 2 3 5
  • iOS 逐帧视频向前/向后播放

    我想在 iOS 设备上以慢动作播放视频 我的视图包含一个视频 约 2 秒长 和一个滑块 用户可以移动滑块并逐帧 向前和向后 浏览电影 MPMoviePlayerController缺乏逐帧步进的能力 我读到MVAssetReader 但我不
  • 绑定 int64 (SQL_BIGINT) 作为查询参数会导致在 Oracle 10g ODBC 中执行期间出错

    我在 Oracle 10g 上使用 ODBC 3 0 插入表失败 我不知道为什么 数据库运行在Windows Server 2003上 客户端运行在Windows XP上 桌子 CREATE TABLE test testcol NUMBE
  • Flutter:预定的通知日期时间

    我正在寻找将 Flutter 的插件 date time picker 与本地通知集成 因此 当我选择日期时间时 我还会安排通知 这是我的代码 你能帮我吗 现在我没有任何错误 但代码不起作用 class test1 extends Stat
  • 如何规范工作目录中的行结尾

    我的 git 存储库中有以 LF 结尾的文件 不知何故 我的工作树中的一些文件被转换为 CRLF 有没有办法将我的工作树中的行结尾转换回 LF 请注意 我的目录中有一些文件 gitignore所以我不想简单地删除所有内容并再次检查 尽管如果
  • 在 mac 雪豹上启用 php [关闭]

    Closed 这个问题是无关 目前不接受答案 安装 Entropy PHP 5 3 03 pkg 我一直在尝试在我的 mac 上启用 php 但每次我将浏览器指向 test php 时 我得到的只是显示的源代码 我将 test php 放在
  • Bash 脚本 - Do-While 循环中的变量作用域

    我有一个 do while 循环 我在其中向自身添加一个变量 while read line do let variable variable someOtherVariable done return variable 当我回显 vari
  • 使用 C# .accdb 文件的 Microsoft Access 压缩和修复

    我需要使用 C 压缩并修复 accdb 最后一个 MS Access 版本 我尝试使用这个 var jroEngine new JRO JetEngineClass var old Provider Microsoft ACE OLEDB
  • 用 rpy 制作的图发送到 X11 突然关闭?

    我正在使用 RPy2 来绘制一些图 绘图显示 但 X11 窗口立即消失 我输入的内容如下CCFS是一个数据矩阵 import rpy2 robjects as robjects r robjects r pca r princomp CCF
  • 将 mongo ObjectId 转换为字符串并将其用于 URL 可以吗?

    document show id 4cf8ce8a8aad6957ff00005b 一般来说 我认为您应该谨慎向客户端公开内部结构 例如数据库 ID URL 很容易被操纵 并且用户可能访问您不希望他访问的对象 特别是对于 MongoDB 对
  • SQL Server:如何获取排它锁以防止竞争条件?

    我有以下 T SQL 代码 SET TRANSACTION ISOLATION LEVEL SERIALIZABLE BEGIN TRANSACTION T1 Test This is a dummy table used for lock
  • PHP 多个复选框删除

    我很难解决删除多个复选框的问题 有人可以指导我找到解决方案吗 这里应该发生的是 用户可以勾选复选框并单击删除按钮来删除勾选的框 不幸的是 我的代码似乎不起作用 你能为我指出正确的方向吗 div class page img class pa
  • 为什么必须声明 Typescript 的环境接口实现?

    我有一些接口及其实现的定义 每个实现类都必须声明许多方法 我发现它乏味且多余 因为它只是一个定义 是否只是缺乏时间来实现此功能 或者为什么应该强制执行环境实现定义背后的某些想法 或者我错过了什么 UPDATE 我现在不喜欢我的问题 它是从一
  • 这是批处理文件注入吗?

    C gt batinjection OFF DEL c c batinjection bat 的内容为ECHO 我听说过 SQL 注入 虽然我从未真正做过 但这就是注入吗 有不同类型的注射吗 这是其中之一吗 或者还有另一个技术术语吗 或者更
  • 如何覆盖 AWS-SDK-CPP 中的端点以连接到 localhost:9000 处的 minio 服务器

    我尝试过类似的东西 Aws Client ClientConfiguration config config endpointOverride Aws String localhost 9000 这是行不通的 看来AWS SDK CPP默认
  • Pyspark 按另一个数据帧的列过滤数据帧

    不知道为什么我在这方面遇到困难 考虑到在 R 或 pandas 中相当容易做到 它看起来很简单 我想避免使用 pandas 因为我正在处理大量数据 而且我相信toPandas 将所有数据加载到 pyspark 中的驱动程序内存中 我有 2
  • 使用 Jquery 在导航菜单中突出显示父链接

    我使用以下 Jquery 在导航中突出显示当前页面的链接 Add Active Class To Current Link var url window location get current URL nav a href url add
  • 如何在Python中将浮点数格式化为固定宽度

    如何将浮点数格式化为固定宽度并满足以下要求 如果 n 添加尾随小数零以填充固定宽度 截断超过固定宽度的小数位 对齐所有小数点 例如 formatter something like 06 numbers 23 23 0 123334987
  • Apex 5:动态操作设置页面项值

    使用新的 apex 5 版本时 我遇到以下问题 无法通过plsql获取页面项的值 nv P2 TO P2 FROM lt lt lt DOESN T WORK I Yes P FROM exist and verified nv P2 TO
  • SPSS 按行分组并将字符串连接成一个变量

    我试图导出 SPSS 元数据使用 SPSS 语法转换为自定义格式 具有值标签的数据集包含一个或多个变量标签 但是 现在我想将每个变量的值标签连接成一个字符串 例如对于变量SEX将行组合或分组F Female and M Male转化为一个变