由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Statistics版 - 请教sas code (array 的问题)
相关主题
SAS问题请教, keep/drop[合集] SAS里如何实现LOCF(LAST OBS CARRIED FORWARD)?
如何删除重复的OBS?do loop 的一道题
hi, an interview question请教, base 123 , if then else
SQL find distinct values in large table (转载)菜鸟请教SAS初级编程题目。
[求助]count coverage days如何用SAS对ID(OBS)求SUM或者用SAS消去ID(没有ID)。
one quick question in SAS, thank you!!sas里怎么取相邻2个observation的差?
How to generate the sample points of uniform distribution能不能帮忙看一下code 哪里有问题,run不出结果来
[合集] 新手再问sas问题。。。如何比较两个proc contents的结果?
相关话题的讨论汇总
话题: ngcode话题: array1话题: array话题: sgroup话题: macro
进入Statistics版参与讨论
1 (共1页)
m*****y
发帖数: 229
1
请问怎么把table的一列存进一个array里。
我试了个以下方法行不通。
proc sql ;
create table ngcode;
select distinct NGCODE into array1
from sgroup;
求高手指点。
c*****a
发帖数: 808
2
select distinct NGCODE into :array1 separated by ' '这意思?变成macro
variable?
m*****y
发帖数: 229
3
不一定要macro variable。 只要是能把一列存进array就可以。

【在 c*****a 的大作中提到】
: select distinct NGCODE into :array1 separated by ' '这意思?变成macro
: variable?

k*******a
发帖数: 772
4
array只能在data step里面用吧, 不过你可以用macro
有两种方法,第一个可以把所有值存到一个macro变量里面
proc sql ;
select distinct NGCODE into :array1 separated by " "
from sgroup;
第二个方法先得出所有值的个数,每个值存在一个macro里面array1-arrayn
proc sql ;
select count(distinct NGCODE) into :n from sgroup;
select distinct NGCODE into :array1-array%left(&n)
from sgroup;
quit;
这样所有的值都存到 array1 到 arrayn 这n个 macro variable了

【在 m*****y 的大作中提到】
: 不一定要macro variable。 只要是能把一列存进array就可以。
m*****y
发帖数: 229
5
非常感谢~ 我用了你的第二个方法。
还有个问题。我想看数据是不是存进去了,用了
proc print &array;
run;
LOG 里出了错误。
ERROR 22-322: Syntax error, expecting one of the following: ;, BLANKLINE,
DATA, DOUBLE, HEADING,LABEL, N, NOOBS, OBS, ROUND, ROWS, SPLIT, STYLE,
SUMLABEL, UNIFORM, WIDTH.
ERROR 200-322: The symbol is not recognized and will be ignored.
我哪里错了呢?谢谢

【在 k*******a 的大作中提到】
: array只能在data step里面用吧, 不过你可以用macro
: 有两种方法,第一个可以把所有值存到一个macro变量里面
: proc sql ;
: select distinct NGCODE into :array1 separated by " "
: from sgroup;
: 第二个方法先得出所有值的个数,每个值存在一个macro里面array1-arrayn
: proc sql ;
: select count(distinct NGCODE) into :n from sgroup;
: select distinct NGCODE into :array1-array%left(&n)
: from sgroup;

k*******a
发帖数: 772
6
array都是macro啊, SAS和R是不一样的
你要用那些值的话,用 &array1, &array2....来代替

【在 m*****y 的大作中提到】
: 非常感谢~ 我用了你的第二个方法。
: 还有个问题。我想看数据是不是存进去了,用了
: proc print &array;
: run;
: LOG 里出了错误。
: ERROR 22-322: Syntax error, expecting one of the following: ;, BLANKLINE,
: DATA, DOUBLE, HEADING,LABEL, N, NOOBS, OBS, ROUND, ROWS, SPLIT, STYLE,
: SUMLABEL, UNIFORM, WIDTH.
: ERROR 200-322: The symbol is not recognized and will be ignored.
: 我哪里错了呢?谢谢

m*****y
发帖数: 229
7
I see 了, 非常感谢。

【在 k*******a 的大作中提到】
: array都是macro啊, SAS和R是不一样的
: 你要用那些值的话,用 &array1, &array2....来代替

d******9
发帖数: 404
8
Maybe you can Data step to do it.
Data B;
Set A NOBS=N; (Say N=100)
Array C(100) C1-C100;
Retain C1-C100;
do I=1 to N;
C(I)=NGCODE;
end;
run;
1 (共1页)
进入Statistics版参与讨论
相关主题
如何比较两个proc contents的结果?[求助]count coverage days
SAS base 87% pass todayone quick question in SAS, thank you!!
关于SAS里TRUNCOVER一问How to generate the sample points of uniform distribution
[合集] 帮忙看一下我的程序跟运行结果。关于MMDDYY格式的。[合集] 新手再问sas问题。。。
SAS问题请教, keep/drop[合集] SAS里如何实现LOCF(LAST OBS CARRIED FORWARD)?
如何删除重复的OBS?do loop 的一道题
hi, an interview question请教, base 123 , if then else
SQL find distinct values in large table (转载)菜鸟请教SAS初级编程题目。
相关话题的讨论汇总
话题: ngcode话题: array1话题: array话题: sgroup话题: macro