楼主: pumayan
4479 7

求助,如何把变量的变量值取出来? [推广有奖]

  • 2关注
  • 0粉丝

本科生

98%

还不是VIP/贵宾

-

威望
0
论坛币
51 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
1793 点
帖子
87
精华
0
在线时间
144 小时
注册时间
2009-1-29
最后登录
2024-10-24

楼主
pumayan 发表于 2010-11-8 16:35:52 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
有一个数据集,数据集里有一个变量叫做trt,它有n个值。 问题是怎么把trt的值取出来赋值给n个变量x1,x2,...,xn?
问题看似很简单,可是倒腾半天没有结果...请求牛人给解决一下。多谢多谢~


非常感谢大家的热心帮助,我想是我表述不清楚。我的目的不是看到这个变量的变量值,而是把每个可能的变量值赋给不同的变量,而这个变量是我要在程序当中用到的,而不仅仅是通过put语句来看到它。
比如,我有一个叫data的数据集,这个数据集只有一个变量叫做trt,只有两个观测,第一个观测的值是“A”,第二个观测的值是“B”. 就是这样的一个很简单的数据集,我现在就想把A和B分别赋值给两个变量X和Y,从而方便我在之后的程序当中运算。
数据集大概这个样子,不大会粘贴附件,还望大家担待。

            trt
1          A
2          B

我在想一下两个问题,请大家指教。
1. 有没有一个函数直接取出变量的变量值来给其他的变量赋值。
2. 如果我用IML模块的话,当然可以取出每一个变量的值。可是,IML模块和data步,或者macro有数据接口吗?
    就是如何把IML模块里能够取出的值赋值给macro中的宏变量?
二维码

扫码加我 拉你入群

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

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

关键词:变量值 Macro put语句 data步 Data 取出 变量值 给其他变量赋值

回帖推荐

qqyy402 发表于7楼  查看完整内容

data tmp; trt='A'; output; trt='B'; output; run; /*这一步是我用来生成你那个数据集的*/ data tmp2; set tmp; n=_n_; keep trt n; run; /*如果你有数据集的话,可以将it set 到另一个数据集,然后keep _n_*/ proc transpose data=tmp2 out=tmp3 prefix=x; var trt; id n; run; 我的这个可以了。 生成了个数据集tmp3,x1的值是A,x2的值是B,你的意思是这样子的么? 你可以看看。

本帖被以下文库推荐

沙发
qqyy402 发表于 2010-11-8 16:56:01
单独弄个数据集,有这个变量,还有一个标志的东西,然后 proc transpose(转秩), 我想应该就可以了
如果你把数据给我,我帮你弄弄~
Life is like a Markov chain.
You never know where you gonna go.

藤椅
ls5655 发表于 2010-11-8 17:00:44
use array can solve the problem

板凳
sopching 发表于 2010-11-8 18:43:18
  1. data a;
  2.                       do i=1 to 5;
  3.                      y=ranuni(123);
  4.                      output;
  5.                      end;
  6.              drop i;
  7.            run;
  8.       data b;
  9.                       array x(5);
  10.                       do i=1 to 5;
  11.                        set a;
  12.                        x(i)=y;
  13.                      end;
  14.              drop i y;
  15.            put x(*)=;
  16.         run;
复制代码

报纸
pobel 在职认证  发表于 2010-11-9 07:27:51
data test;
    input trt $;
        cards;
tablet
capsule
IM
capsule
IM
IM
surgery
;

proc sql noprint;
     create table test1 as
          select distinct trt from test;
quit;

proc transpose data=test1 out=wanted(drop=_:) prefix=x;
     var trt;
run;
和谐拯救危机

地板
myzhang1982 在职认证  发表于 2010-11-9 13:47:04
学习高手的文章

7
qqyy402 发表于 2010-11-9 14:36:51
data tmp;
trt='A';
output;
trt='B';
output;
run; /*这一步是我用来生成你那个数据集的*/

data tmp2;
set tmp;
n=_n_;
keep trt n;
run;   /*如果你有数据集的话,可以将it set 到另一个数据集,然后keep _n_*/

proc transpose data=tmp2 out=tmp3 prefix=x;
var trt;
id n;
run;
我的这个可以了。
生成了个数据集tmp3,x1的值是A,x2的值是B,你的意思是这样子的么?
你可以看看。
已有 1 人评分经验 论坛币 收起 理由
bakoll + 3 + 3 精彩帖子

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

Life is like a Markov chain.
You never know where you gonna go.

8
pumayan 发表于 2010-11-15 10:02:48
7# qqyy402 多谢!问题解决啦!

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

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