楼主: fxf258
3212 12

[问答] 请教如何读取数据集中某个数据 [推广有奖]

  • 1关注
  • 3粉丝

已卖:2份资源

教授

92%

还不是VIP/贵宾

-

威望
0
论坛币
3486 个
通用积分
31.7841
学术水平
-3 点
热心指数
2 点
信用等级
-3 点
经验
108706 点
帖子
499
精华
0
在线时间
2900 小时
注册时间
2006-11-4
最后登录
2025-12-15

楼主
fxf258 发表于 2014-3-26 10:20:09 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
请教各位大侠,如何读取一个SAS数据集中某行某列的数据?
如数据集a中第5行第6列的数据为12345,如何调用该数据,并生成宏变量fx,可以直接调用该宏变量&fx.的值。谢谢!
二维码

扫码加我 拉你入群

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

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

关键词:读取数据 数据集 sas数据集 各位大侠 如何

海象

沙发
farmman60 发表于 2014-3-26 18:11:43
It is a little bit strange request. Are there any conditions about this value in row? if you know value why not directly use: %let need=12345 ? Anyway, here is defined 99 in row 3 and col 2 as macro value.

data have;
input x1-x5;
cards;
23 36 33 22 43
20 53 21 55 93
45 99 82 49 22
;
run;

data _null_;
set have(firstobs=3) end=last;
array vars _numeric_;
i=whichn(99,of vars(*));
if last then  call symputx('need',vars(i));
run;

%put &need;

藤椅
fxf258 发表于 2014-3-27 09:09:49
farmman60 发表于 2014-3-26 18:11
It is a little bit strange request. Are there any conditions about this value in row? if you know va ...
谢谢frmman60的回复,运行结果为99。
如果不知道这个数据是99,而只知道需要的这个数据处于数据集have中的第3行,且位于第2列的变量名为X2,程序该如何修订呢?
海象

板凳
z_shousi 发表于 2014-3-27 11:18:28
  1. data test2;
  2. set work.test(keep = x3);
  3. if _n_ = 2 then call symputx('fx',x3);;
  4. run;

  5. %put &fx;
复制代码

报纸
learsaas 发表于 2014-3-27 21:29:40
这个不知道是不是你需要的:
  1. data _null_;
  2.         row=5;col=6;
  3.         length value $256;
  4.         dsid=open('yourtable');
  5.         rc=fetchobs(dsid,row);
  6.         type=vartype(dsid,col);
  7.         if upcase(type)='N' then value=getvarn(dsid,col);
  8.         else value=getvarc(dsid,col);
  9.         rc=close(dsid);
  10.         call symput('fx',strip(value));
  11. run;
复制代码

地板
jungsee 发表于 2014-3-28 12:57:14
learsaas 发表于 2014-3-27 21:29
这个不知道是不是你需要的:
这个代码可行。赞一个

7
fxf258 发表于 2014-3-28 14:29:31
learsaas 发表于 2014-3-27 21:29
这个不知道是不是你需要的:
谢谢!我先看看!
海象

8
fxf258 发表于 2014-3-28 14:30:07
z_shousi 发表于 2014-3-27 11:18
谢谢,您也给我提供了一个思路!
海象

9
fxf258 发表于 2014-3-28 14:35:27
data have;
input x1-x6;
cards;
23 36 33 22 43 45
20 53 21 55 93 33
45 99 82 49 22 48
32 25 68 77 79 81
54 36 38 51 29 75
44 46 34 54 61 60
;
run;
如上have库,假如我现在只想提取此库中第2行变量X4的值,将此值赋给宏变量fx,调用fx后的值应为55,具体的怎么写程序?
海象

10
learsaas 发表于 2014-3-28 15:37:04 来自手机
我的程序里修改为row=2;col=4;即可。row设定的是行,col设定的是列。

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

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