由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Statistics版 - 问一个SAS问题
相关主题
想换到东部工作, 结果泡汤了SAS菜鸟求助,请好心达人帮个忙解决一个SAS问题
急 SAS问题请问如何改变 data set's column 位置. 比如name, id 换成id, name.
SAS base题库SAS question
问个简单的SAS问题!菜鸟的SAS问题,向高手求助
[合集] SAS里如何实现LOCF(LAST OBS CARRIED FORWARD)?有没有SAS最新的机经
请教SAS问题请教一个SAS的问题
请教一sas codeSAS help
Use SAS to fill in missing values?再请教一个sas问题
相关话题的讨论汇总
话题: x1话题: sas话题: retain话题: 11话题: 转成
进入Statistics版参与讨论
1 (共1页)
h***y
发帖数: 162
1
周末问各位板油一个SAS问题哈~~~大家也放松放松。
有一列数据,比如10,12,34,45,32,21,10,11.
从最后一位11开始,我想用某个比例来估计未来的值,大家可以把这列数据想成是历史
数据,比如那个比例是0.9,那么从11开始,下一个应该是9.9(=11×0.9),再下一个
应该是9.9×0.9,所以你需要用之前一期的数据来算下一期的,假设0.9是可知的,有
没有什么办法可以让我拿到11以后的值。
我想了好久,就是死活没想起来,想把这列数据转成列,没辙,转成行,也没辙,不知
道大家有没有好的办法。
谢谢各位了,大家周末一起high啊~~~
a******n
发帖数: 11246
2
retain这个变量不就好了。
当然也有可能我没看懂,比如“想把这列数据转成列”,我就没明白...

【在 h***y 的大作中提到】
: 周末问各位板油一个SAS问题哈~~~大家也放松放松。
: 有一列数据,比如10,12,34,45,32,21,10,11.
: 从最后一位11开始,我想用某个比例来估计未来的值,大家可以把这列数据想成是历史
: 数据,比如那个比例是0.9,那么从11开始,下一个应该是9.9(=11×0.9),再下一个
: 应该是9.9×0.9,所以你需要用之前一期的数据来算下一期的,假设0.9是可知的,有
: 没有什么办法可以让我拿到11以后的值。
: 我想了好久,就是死活没想起来,想把这列数据转成列,没辙,转成行,也没辙,不知
: 道大家有没有好的办法。
: 谢谢各位了,大家周末一起high啊~~~

h***y
发帖数: 162
3
关键是retain的话列是永远不变的,如果你把那列数字转成列的话,如果转成行的话,
retain就不行了吧,不知道我有没有理解错retain。
a******n
发帖数: 11246
4
我还是不明白什么叫把一列数字转成列。。。
另外也不知道什么叫retain的话列永远不变...你是说值?
retain X1;
input X1;
if X1=.; then X1=X1*0.9;
不就好了么?

【在 h***y 的大作中提到】
: 关键是retain的话列是永远不变的,如果你把那列数字转成列的话,如果转成行的话,
: retain就不行了吧,不知道我有没有理解错retain。

h***y
发帖数: 162
5
不是,我的问题是,在原来数列的基础上,扩张数列,有点recursive的意味,就是下
一期的值取决于现值,比如原来数列是:10,12,34,45,32,21,10,11,有8个,
第九个数字是从第八个数字乘上0.9得来,第十个数字是第九个数字乘上0.9得来,以此
类推。我想过retain,但是不可行啊,不知道我有没有说清楚。
thanks again~~~
b*****s
发帖数: 11267
6
每次output?

【在 h***y 的大作中提到】
: 不是,我的问题是,在原来数列的基础上,扩张数列,有点recursive的意味,就是下
: 一期的值取决于现值,比如原来数列是:10,12,34,45,32,21,10,11,有8个,
: 第九个数字是从第八个数字乘上0.9得来,第十个数字是第九个数字乘上0.9得来,以此
: 类推。我想过retain,但是不可行啊,不知道我有没有说清楚。
: thanks again~~~

l****u
发帖数: 529
7
array?
h***y
发帖数: 162
8
这些其实我都想过,感觉是可以的,但是实际操作起来就不work,郁闷啊。
l****u
发帖数: 529
9
data try;
array tr [50] x1-x50;
do i=1 to 50;
if i=1 then tr[i]=11;
else tr[i]=tr[i-1]*0.9;
end;
drop i;
run;
k*******a
发帖数: 772
10
data a(drop=i);
set a end=last;
output;
if last then do i=1 to 10;
x=x*0.9;
output;
end;
run;
h***y
发帖数: 162
11
很感谢ls两位,周末快乐
1 (共1页)
进入Statistics版参与讨论
相关主题
再请教一个sas问题[合集] SAS里如何实现LOCF(LAST OBS CARRIED FORWARD)?
请教个SAS问题请教SAS问题
SAS里面怎么设置vector请教一sas code
how to create page x of y in SASUse SAS to fill in missing values?
想换到东部工作, 结果泡汤了SAS菜鸟求助,请好心达人帮个忙解决一个SAS问题
急 SAS问题请问如何改变 data set's column 位置. 比如name, id 换成id, name.
SAS base题库SAS question
问个简单的SAS问题!菜鸟的SAS问题,向高手求助
相关话题的讨论汇总
话题: x1话题: sas话题: retain话题: 11话题: 转成