楼主: new9812
3707 5

[问答] SAS 变量的提取 [推广有奖]

  • 0关注
  • 0粉丝

高中生

70%

还不是VIP/贵宾

-

威望
0
论坛币
923 个
通用积分
0.5243
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
527 点
帖子
17
精华
0
在线时间
38 小时
注册时间
2007-7-11
最后登录
2025-10-22

楼主
new9812 发表于 2012-12-22 00:08:26 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
数据集如下:
var1 var2 .....
x1   x2   ....
x3   x4   ....
x5   x6   ....
x7   x8   ....
我现在写用SAS做多元线性回归,我所需要用的自变量的名字存在以上数据集中,第一次我我需要把x1,x3,x5,x7从数据集中提取出来作为自变量, model y=x1 x3 x5 x7。第二次我需要把x2,x4,x6,x8从数据集中提取出来作为自变量, model y=x2 x4 x6 x8,  也就是说每次分析的自变量不同,最后会有许多不同的回归模型。请问会有没有办法把var1,var2,...... 的值提取出来作为自变量来分析, 但我不能复制粘贴,因为我有许多这种var变量。非常感谢!
二维码

扫码加我 拉你入群

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

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

关键词:多元线性回归 model mode 回归模型 线性回归 自变量 模型

沙发
南海游客 发表于 2012-12-23 16:55:50
这个可以使用SAS宏变量来解决
已有 1 人评分经验 学术水平 热心指数 信用等级 收起 理由
数据分析师3K + 20 + 1 + 1 + 1 鼓励积极发帖讨论

总评分: 经验 + 20  学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

藤椅
new9812 发表于 2012-12-23 17:54:06
南海游客,请问怎样用SAS宏变量来解决,可以给个具体的程序吗,谢谢

板凳
davil2000 发表于 2012-12-23 19:11:49
title 'Regression With MACRO Variables';
data test;
   input y x1 x2 @@;
   x3=x1*x2;
   datalines;
17 151 0   26  92 0   21 175 0   30  31 0   22 104 0
0 277 0   12 210 0   19 120 0    4 290 0   16 238 0
28 164 1   15 272 1   11 295 1   38  68 1   31  85 1
21 224 1   20 166 1   13 305 1   30 124 1   14 246 1
;
run;

/*The following statements begin the analysis: */
/*%let xx1=x1;*/
%let xx2=x1 x2;
/*%let xx3=x1 x2 x3;*/

proc reg data=test;
   model y = &xx2;
run;
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
南海游客 + 5 + 5 + 5 我很赞同

总评分: 学术水平 + 5  热心指数 + 5  信用等级 + 5   查看全部评分

R是万能的,SAS是不可战胜的!

报纸
new9812 发表于 2012-12-23 23:13:43
谢谢davil2000,但这样的MACRO Variable达不到我的目的,我的自变量是变化的,第1次是x1,x3,x5,x7,第2次是x2 x4 x6 x8,.......,到第100次可能又是x101,x103,x105,x107,也就是说我要建立100个回归方程,每个回归方程都又4个自变量,每次的4个自变量的name都存在数据集
var1 var2 .....var100
x1   x2   ....x101
x3   x4   ....x103
x5   x6   ....x105
x7   x8   ....x107

地板
AnAnAndrea 发表于 2012-12-24 16:17:48
我也遇到同样问题我有一串待用的x variable名字是: 199901d, 199902d,...., 在一个叫demand的dataset里。
我想的方法是:

%do yy=1999 % to 2000;
%do qq= 1 %yo 4;
%let yyqq = &yy*1000+&qq;
%let yyqqd = &yyqq||'d';    (此步我不知道正确是怎么个写法,我想要199901d)

data shock;
      set demand;
      keep &yyqqd;
run;

然后用macro跑。但是我这个明显有问题: 1)variable名创建不出来; 2) 我估计data抓不到。
请高手指点!

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

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