首页 热点资讯 义务教育 高等教育 出国留学 考研考公

导入SPSS后的数据有一列是字符串变量类型,例如:2012/11/8 16:40:43,但是我想让此列都转换为日期或

发布网友 发布时间:2022-04-23 07:19

我来回答

3个回答

热心网友 时间:2023-10-07 00:17

这个问题要用字符串函数和转换函数来解决。
先设存有字符串的变量为S,存放日期的变量为DATE
用COMPUT命令,根据S的值生成一个D值。其中,计算公式为:
(1)先用SUBSTR(S,1,4)存入Y,SUBSTR(S,6,2)存入M,SUBSTR(S,9,2)存入D,
(2)把Y、M、D三个变量的类型改为N
(3)用DATE.MDY(M,D,Y)存入DATE追问“SUBSTR(S,6,2)存入M ,”
但有的日期的月数不是从第六位开始的,比如2012/9/5,怎么办?

追答月份总是从第6位起取出的,只不过有时取1位,有时取2位。
两个办法:
1、如果这种情况的数据不是多时,可分情况处理,如:2012/9/5,则用SUBSTR(S,6,1)到M。
2、如果这种情况的数据较多时,再教你一个新办法:
你可先从第6位取出所有字符:S1=SUBSTR(S,6)
然后,用函数INDEX(S1,"/")算出个“/”在S1中的位置,然后再取出
月份子串:SUBSTR(S1,1,INDEX(S1,“/”)-1);
日期子串:SUBSTR(S1,INDEX(S1,"/")+1)。

热心网友 时间:2023-10-07 00:18

SPSS在变量的类型设置中是可选的,有数值型、字符型和日期型等追问这个我知道,但是对于已经成为字符串变量的数据不能通过更改变量类型的方式将其转换为日期型,我试过,一转就没了

热心网友 时间:2023-10-07 00:18

你说的 :2012/11/8 16:40:43 之类的数据本来就是日期型的,不是字符串!!!追问是字符串,是csv文件导入到spss之后就是显示字符串,不能直接进行日期运算的

热心网友 时间:2023-10-07 00:17

这个问题要用字符串函数和转换函数来解决。
先设存有字符串的变量为S,存放日期的变量为DATE
用COMPUT命令,根据S的值生成一个D值。其中,计算公式为:
(1)先用SUBSTR(S,1,4)存入Y,SUBSTR(S,6,2)存入M,SUBSTR(S,9,2)存入D,
(2)把Y、M、D三个变量的类型改为N
(3)用DATE.MDY(M,D,Y)存入DATE追问“SUBSTR(S,6,2)存入M ,”
但有的日期的月数不是从第六位开始的,比如2012/9/5,怎么办?

追答月份总是从第6位起取出的,只不过有时取1位,有时取2位。
两个办法:
1、如果这种情况的数据不是多时,可分情况处理,如:2012/9/5,则用SUBSTR(S,6,1)到M。
2、如果这种情况的数据较多时,再教你一个新办法:
你可先从第6位取出所有字符:S1=SUBSTR(S,6)
然后,用函数INDEX(S1,"/")算出个“/”在S1中的位置,然后再取出
月份子串:SUBSTR(S1,1,INDEX(S1,“/”)-1);
日期子串:SUBSTR(S1,INDEX(S1,"/")+1)。

热心网友 时间:2023-10-07 00:18

SPSS在变量的类型设置中是可选的,有数值型、字符型和日期型等追问这个我知道,但是对于已经成为字符串变量的数据不能通过更改变量类型的方式将其转换为日期型,我试过,一转就没了

热心网友 时间:2023-10-07 00:18

你说的 :2012/11/8 16:40:43 之类的数据本来就是日期型的,不是字符串!!!追问是字符串,是csv文件导入到spss之后就是显示字符串,不能直接进行日期运算的

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com