楼主: peanut1008
1801 4

[问答] 语法问题 [推广有奖]

  • 0关注
  • 1粉丝

本科生

4%

还不是VIP/贵宾

-

威望
0
论坛币
1 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
854 点
帖子
80
精华
0
在线时间
34 小时
注册时间
2009-12-31
最后登录
2018-10-3

楼主
peanut1008 发表于 2010-9-13 23:12:32 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
现在有个问题请教   先谢谢大家
我想要计算某个变量的构成
如时间
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


不知道怎么实现
二维码

扫码加我 拉你入群

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

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

关键词:语法问题 EXECUTE mtime Moder time 语法

回帖推荐

sunruoying0119 发表于3楼  查看完整内容

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 ( ...

本帖被以下文库推荐

沙发
sunruoying0119 发表于 2010-9-14 22:01:25
1# peanut1008
看了两遍没看到你想问什么....
另sum=0那一列下移,或者第一个>=的地方加一个and sum<>0,否则sum=0,ttype=3不是4。
怒了,只回答有质量的提问......

藤椅
sunruoying0119 发表于 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.
怒了,只回答有质量的提问......

板凳
peanut1008 发表于 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啊?

报纸
sunruoying0119 发表于 2010-9-16 07:24:19
纱布了,那行<>可以去掉。
自己走一遍看看效果你就明白了,先看再问。
怒了,只回答有质量的提问......

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-5 00:48