【问题标题】:Nested Data Breakdown in CSV to SPSSCSV 到 SPSS 中的嵌套数据细分
【发布时间】:2017-07-18 12:33:23
【问题描述】:

我是 SPSS 平台的新手,我需要在 SPSS 中使用一个复杂的数据集。

数据是这样的

header1|header2|header3|{header4_a - header4_b - header4_c} |{header5_a - header5_b - header5_c} |{header6_a - header6_b - header6_c} 
1|some-text-can be here| 2 |{ Alex - John,Doe - 20}|{ Maria - Maria,Doe - 300}
2|some-other text| 1 |{ Mike- Mike,Doe - 400} 

我想要一些指导如何打开这个文件,这样我就可以分别处理每个 header4_a header4_b 等。

【问题讨论】:

  • 很乐意提供帮助,但需要进一步说明您的数据的当前结构以及您希望获得的位置。如果您可以发布一些示例数据,也可能会有所帮助。
  • @eli-k 首先感谢您的回复。我只想使用管道 (|) 和连字符 (-) 作为分隔符来分解 csv,同时删除花括号 ( { , } ) 但忽略标题 2 下的任何连字符。将编辑我的原始帖子以添加一行数据。

标签: csv spss


【解决方案1】:

我建议您只使用管道作为分隔符来阅读文件。标题 4a-4c 将被读入单个变量(与 5a-5c 相同),如您所述,该变量很容易分成 3 个变量。

使用以下语法:

*first creating some fake data to experiment on.
data list list/header4(a30).
begin data
"{Alex - John,Doe - 5005}"
"{ Maria - Maria,Doe - 300}"
end data.

* now cleaning and dividing `header4`.
string header4_a header4_b header4_c (a20).

compute header4=replace(replace(header4,"{",""),"}","").

compute header4_a=char.substr(header4,1,char.index(header4,"-")-1).
compute header4_b=char.substr(header4,char.index(header4,"-")+1).
compute header4_c=char.substr(header4_b,char.index(header4_b,"-")+1).
compute header4_b=char.substr(header4_b,1,char.index(header4_b,"-")-1).
exe.

【讨论】:

  • 为您提供帮助。我被这个错误困住了>Warning # 651>CHAR.SUBSTR 函数的第三个参数无效。 >命令行:167 当前案例:1 当前拆分文件组:1 数据从 {Alex - John,Doe - 5005} 变为 Alex |约翰,Doe-500 | 5005(管道表示列)
  • 我纠正了一个错字并添加了一些示例数据 - 代码现在似乎可以工作 - 试一试。
  • 由于某种原因收到相同的错误消息,但至少这次所有数据都完美拆分,所以我会接受它作为回答。再次感谢我使用 SPSS 的第一步
  • 因为我是新手,不想提出新问题,但现在我拆分了数据,我想绘制一个结合所有 header4_b.header5_b 等数据的条形图。寻找将所有 header4_b 数据复制到新的 var b 然后直接在下面将广告来自 5_b 等的数据的东西。非常感谢您花费的时间。
  • 听起来您需要使用varstocases,但实际上您应该发布一个新问题。
猜你喜欢
  • 1970-01-01
  • 2016-04-26
  • 1970-01-01
  • 2013-10-03
  • 2023-02-14
  • 2016-11-04
  • 2016-12-11
  • 2019-05-31
  • 2022-08-19
相关资源
最近更新 更多