楼主: undertone
8301 13

[其他] [求教] 请问如何便捷地同时删除矩阵中的第n行和第n列? [推广有奖]

11
undertone 发表于 2011-1-27 12:53:38
sungmoo 发表于 2011-1-27 12:49
undertone 发表于 2011-1-27 10:38
foreach id of num 102 112 … 7089 {
    drop v`id'
}
好像奏效。谢谢!
这个可以删除变量v0102吗?
我之前已经根据实际的数据把最初的描述修订了。比如实际上是v102而不是v0102。

12
undertone 发表于 2011-1-27 13:07:23
undertone 发表于 2011-1-27 10:38

试了下


foreach id of num 102 112 … 7089 {
    drop v`id'
}


好像奏效。谢谢!

现在我能不能再把故事讲得实际一点啊?

实际情况是,这个矩阵文件是经过了merge操作以后的保存的。也就是说,可以通过_merge==2找到上面提及需要删除的行(“0102”行、“0112”行、……“7089”行,等等)。

现在的问题,要删除的列有2256之多,能不能在上面的foreach之外再套一个循环,用以索引到2256个像“102”、“112”……“7089”这样的数字啊?

13
sungmoo 发表于 2011-1-27 14:11:29
undertone 发表于 2011-1-27 13:07 现在我能不能再把故事讲得实际一点啊?
实际情况是,这个矩阵文件是经过了merge操作以后的保存的。也就是说,可以通过_merge==2找到上面提及需要删除的行(“0102”行、“0112”行、……“7089”行,等等)
现在的问题,要删除的列有2256之多,能不能在上面的foreach之外再套一个循环,用以索引到2256个像“102”、“112”……“7089”这样的数字啊?
*试一下

g x=_n if _merge==2
levelsof x,l(l)
foreach i of num `l'{
drop v`i'
}
drop if _merge==2
drop x
已有 1 人评分论坛币 收起 理由
dxystata + 10 好的意见建议

总评分: 论坛币 + 10   查看全部评分

14
undertone 发表于 2011-1-27 22:25:42
13# sungmoo


嗯。这个解决问题啦。

开始报错,显示"invalid numlist has too many elements"。Elements实际有2256个。我用的是SE版本,不知是否因此受限。

随后我用ID<=和>=分两次来做就成功了。

谢谢啦!

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

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2025-12-21 23:54