楼主: 一眼瞬间
2563 1

[原创博文] if 条件句,连续条件,出现了很奇怪的现象 [推广有奖]

  • 0关注
  • 1粉丝

讲师

50%

还不是VIP/贵宾

-

威望
0
论坛币
730 个
通用积分
0.0001
学术水平
0 点
热心指数
4 点
信用等级
0 点
经验
903 点
帖子
376
精华
0
在线时间
309 小时
注册时间
2010-3-14
最后登录
2023-8-19

楼主
一眼瞬间 发表于 2010-3-16 12:58:40 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
基本命令是这样的:

proc sort data=a;
by conm;

data a
set b;
if first.conm then var1=".";
run;

但是事实需要的是如果是第一个公司var2="." 并且 var3="."

我用了 if first.conm then var1="." and var2="." and var3=“."
就出现了相当奇怪的现象:

首先,var1的每组第一个 conm对应的var 1全变成了 0;(本来应该是".")
其次,var2 和var3 的只有第一个 conm对应的var2 和var3是".", 其他全部是原来的数据,没被替换掉;


但是如果我分开用if then句子:
也即if first.conm then var1=".";
       if first.conm then  var2=".‘;
这样出现的结果就是正常的,也即每组的的一个var1和var2全部是 ".";


这是怎么回事呢?

我能不能用一个if句实现我的目的呢?(让每组的的一个var1和var2全部是 ".") 是因为我"and"用的不对?
很想优化程序语言,大家有何高见?
--------------------------------------------
解决了,初学者,偶很菜。
用if then do;
就可以了。。。。。
祝大家天天进步!!!
二维码

扫码加我 拉你入群

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

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

关键词:First Then FIRS Data 程序语言

回帖推荐

crackman 发表于2楼  查看完整内容

你的问题可能是: 1.VAR1 VAR2 VAR3的变量类型,是字符型还是数值型,我看你写的一个VAR1=".",你的意思是不是让VAR1为缺失值,数值型的变量为一点 字符型型的为一个空格 2.每组的第一个VAR1 VAR2为 . 原因是VAR1 VAR2没有初始化,是一个新的变量,没有初始化默认是数值型缺失值,就为. 3.你可以retain语句初始化VAR1 VAR2 不晓得解释清楚没 如果没有 欢迎高手来补充,谢谢

本帖被以下文库推荐

沙发
crackman 发表于 2010-3-16 13:14:31
你的问题可能是:
1.VAR1 VAR2 VAR3的变量类型,是字符型还是数值型,我看你写的一个VAR1=".",你的意思是不是让VAR1为缺失值,数值型的变量为一点 字符型型的为一个空格
2.每组的第一个VAR1 VAR2为 .  原因是VAR1 VAR2没有初始化,是一个新的变量,没有初始化默认是数值型缺失值,就为.
3.你可以retain语句初始化VAR1 VAR2
不晓得解释清楚没
如果没有 欢迎高手来补充,谢谢
已有 1 人评分经验 论坛币 收起 理由
bakoll + 3 + 3 精彩帖子

总评分: 经验 + 3  论坛币 + 3   查看全部评分

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-27 07:39