经管之家App
让优质教育人人可得
立即打开
全部版块
我的主页
›
论坛
›
数据科学与人工智能
›
数据分析与数据科学
›
SAS专版
IML中循环使用矩阵的赋值失败问题
楼主
6皮皮9
1584
3
收藏
2013-09-10
向各位大侠求救:
其实我只是想用循环来做筛选A矩阵中每一列大于30的元素的和。
我这样写的时候系统提示错误说是没有给b矩阵赋值,不知道如何修改。
proc iml;
a={1 2 50 60,
2 50 60 10};
n=0;
do while(n<10);
n=n+1;
k=ncol(a);
do i=1 to k;
b=loc(a[,i]>30);
c=sum(a[b,i]);
print a b c ;
end;
end;
quit;
附件列表
QQ图片20130910224213.jpg
原图尺寸 16.93 KB
出错截图
扫码加我 拉你入群
请注明:姓名-公司-职位
以便审核进群资格,未注明则拒绝
全部回复
沙发
6皮皮9
2013-9-11 11:49:17
我自己解决了:
由于在a矩阵的第一列所有的元素都是小于30的,这时候loc(a[,i]>30)无法返回数值。所以就会说b矩阵没有被赋值了
然后我用那个any函数来判断后再做计算便可以解决问题。
proc iml;
a={1 2 50 60,
2 50 60 10};
n=0;
do while(n<10);
n=n+1;
k=ncol(a);
do i=1 to k;
b=any(a[,i]>30);
if b=1 then do;
d=loc(a[,i]>30);
c=sum(a[d,i]);
end;
else do;
d=loc(a[,i]<30);
c=sum(a[d,i]);
end;
print a b c ;
end;
end;
quit;
扫码加我 拉你入群
请注明:姓名-公司-职位
以便审核进群资格,未注明则拒绝
藤椅
playmore
2013-9-11 12:27:29
学习了
另外你这个问题如果不用IML
用SQL的话会很简单
因为你是求列的嘛
如果求行的话,用array也可以
扫码加我 拉你入群
请注明:姓名-公司-职位
以便审核进群资格,未注明则拒绝
板凳
6皮皮9
2013-9-11 13:24:54
playmore 发表于 2013-9-11 12:27
学习了
另外你这个问题如果不用IML
恩是的,用SQL的话会很简单。其实这个只是一个程序的开头,后面还要做其他的矩阵计算。
一开头就被卡着的感觉真不爽。主要还是IML用得少,对于它的函数运行结果不是很熟悉导致的。
扫码加我 拉你入群
请注明:姓名-公司-职位
以便审核进群资格,未注明则拒绝
相关推荐
简单的程序,高级的错误
iml中数据读取的问题
sas 循环问题?
很久之前的一道题,今天没事弄出来
为什么这个打印的宏命令错误
紧急求救以下程序
看看这程序有问题吗?
do while 语句
while循环结束之后的语句
【学习笔记】count = 3 while count > 0: print(\'测试\') count ...
栏目导航
SAS专版
经管类求职与招聘
宏观经济学
经管文库(原现金交易版)
R语言论坛
金融学(理论版)
热门文章
2026“课题申报”抢跑号角的已吹响!国社科 ...
CDA 认证考试大纲 2025 重磅更新:一二级考 ...
CDA 数据分析师:特征处理核心指南
电子行业深度报告:量子深潜-计算篇:从比特 ...
中国财经文本语料数据
您提出了一个足以获得诺贝尔奖的核心概念— ...
您提出了一个足以获得诺贝尔奖的核心概念— ...
2025年10月23日黄金行情分析
制造业全要素生产率(2000-2024年)
签个到
推荐文章
10月重磅来袭|《打造Coze/Dify专属学术智能 ...
高校老师和学生都在偷偷上的智能体课,到底 ...
最快1年拿证,学费不足5W!热门美国人工智能 ...
关于如何利用文献的若干建议
关于学术研究和论文发表的一些建议
关于科研中如何学习基础知识的一些建议 (一 ...
一个自编的经济学建模小案例 --写给授课本科 ...
AI智能体赋能教学改革: 全国AI教育教学应用 ...
2025中国AIoT产业全景图谱报告-406页
关于文献求助的一些建议
说点什么
分享
微信
QQ空间
QQ
微博
扫码加好友,拉您进群
各岗位、行业、专业交流群