全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SPSS论坛
1760 4
2010-09-13
现在有个问题请教   先谢谢大家
我想要计算某个变量的构成
如时间
ltime=20,mtime=40,htime=60;sumtime=ltime+mtime+htime
这样htime占sumtime最多的算做是ttype=3
但是面临的问题是
1.遇到时间一样的
比如ltime=10,mtime=20,htime=20
或者ltime=10,mtime=10,htime=10
2.还有都是o的,ltime=mtime=htime=0
这样的要怎么处理呢?
我指定的规则是,1.遇到时间一样的就自动算入上一级
比如,比如ltime=10,mtime=20,htime=20,算做htime占sumtime最多,记为ttype=3
如果是ltime=10,mtime=0,htime=10,也算做ttype=3
2.都是0的单独算做ttype=4
编写语法的时候遇到了问题,求解
这个是我编的

if (highmin>=modermin) high_per=1
execute
do if (highmin<walkmin)
recode high_per (1=sysmis)
end if
execute
if(modermin>highmin) moder_per=1
execute
do if (modermin<walkmin)
recode moder_per (1=sysmis)
end if
execute
if (walkmin>highmin) walk_per=1
execute
do if (walkmin<modermin)
recode walk_per (1=sysmis)
end if
execute
if (summin=0) time_type=4
execute
if(high_per=1) time_type=3
execute
do if (moder_per=1)
recode time_type (sysmis=2)
end if
execute
recode time_type (sysmis=1)
execute


不知道怎么实现
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2010-9-14 22:01:25
1# peanut1008
看了两遍没看到你想问什么....
另sum=0那一列下移,或者第一个>=的地方加一个and sum<>0,否则sum=0,ttype=3不是4。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2010-9-15 12:24:42
1# peanut1008 看看我的是不是比你简单点:
data list free/ltime mtime htime(3F3.0).
begin data.
40 50 60
50 40 60
40 60 50
50 60 40
60 40 50
60 50 40
50 50 50
0 0 0
40 50 50
40 40 50
50 40 40
40 30 30
40 40 30
40 50 50
end data.

COMPUTE maxtime=MAX(ltime,mtime,htime).
IF  (maxtime = ltime) type=1.
IF  (maxtime = mtime) type=2.
IF  (maxtime = htime) type=3.
*此处原IF  ((maxtime = ltime) and (maxtime = mtime) and (maxtime <> mtime)) type=2. 纯属脑残,已去除.
IF  (maxtime=0) type=4.
EXECUTE.
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2010-9-16 00:54:28
sunruoying0119 发表于 2010-9-15 12:24
1# peanut1008 看看我的是不是比你简单点:
data list free/ltime mtime htime(3F3.0).
begin data.
40 50 60
50 40 60
40 60 50
50 60 40
60 40 50
60 50 40
50 50 50
0 0 0
40 50 50
40 40 50
50 40 40
40 30 30
40 40 30
40 50 50
end data.

COMPUTE maxtime=MAX(ltime,mtime,htime).
IF  (maxtime = ltime) type=1.
IF  (maxtime = mtime) type=2.
IF  (maxtime = htime) type=3.
IF  ((maxtime = ltime) and (maxtime = mtime) and (maxtime  mtime)) type=2.
IF  (maxtime=0) type=4.
EXECUTE.
谢谢 是简单多了
IF  ((maxtime = ltime) and (maxtime = mtime) and (maxtime <> mtime)) type=2.  ?这个是什么意思
如果最大时间ltime=mtime,并且最大时间不等于mtime?什么意思?【maxtime <> mtime】不明白
这就是属于,ltime=mtime都>htime的情况,应该分类算作,mtime型的,type=2


我不知道还有一个maxtime的函数
这个好啊,但是这个函数对于40 50 50 这种 算作什么呢? mtime还是ltime啊?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2010-9-16 07:24:19
纱布了,那行<>可以去掉。
自己走一遍看看效果你就明白了,先看再问。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群