1 Star 0 Fork 7

夏汉林/nwcommands

forked from 连享会/nwcommands 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
nwdrop.ado 2.35 KB
一键复制 编辑 原始数据 按行查看 历史
ThomasGrund 提交于 2015-09-18 19:13 . v1.5.1
*! Date : 24aug2014
*! Version : 1.0
*! Author : Thomas Grund, Linkping University
*! Email : contact@nwcommands.org
capture program drop nwdrop
program nwdrop
version 9
syntax [anything(name=netname)] [if/] [in/], [netonly ATTRibutes(varlist) reverseif]
_nwsyntax `netname', max(9999)
local nets `networks'
local z = 0
qui foreach dropnet in `netname' {
nwload `dropnet', labelonly
nwname `dropnet'
local id = r(id)
local nodes = r(nodes)
local z = `z' + 1
// only drop nodes
qui if ("`if'" != "" | "`in'" != ""){
tempvar keepnode
gen `keepnode' = 1
if "`if'" != "" {
replace `keepnode' = 0 if `if'
tab `keepnode'
//if ("`reverseif'"!= ""){
// recode `keepnode' (0=1) (1=0)
//}
}
if "`in'" != "" {
replace `keepnode' = 0 in `in'
}
mata: keepnode = st_data((1,`nodes'), st_varindex("`keepnode'"))
if (`z' != `nets') {
nwdropnodes `dropnet', keepmat(keepnode) `netonly'
}
else {
nwdropnodes `dropnet', keepmat(keepnode) `netonly' attributes(`attributes')
}
mata: mata drop keepnode
}
// drop the whole network
else {
// delete Stata variables if needed
scalar onenw = "\$nw_`id'"
if "`netonly'" == "" {
capture confirm variable `=onenw'
if _rc == 0 {
qui drop `=onenw'
}
capture drop _label
capture drop _nodelab
capture drop _nodevar
capture drop _nodeid
}
// update all Stata/Mata macros
local k = $nwtotal - 1
forvalues j = `id'/`k' {
local next = `j' + 1
nwname, id(`next')
global nwname_`j' = r(name)
global nwsize_`j' = r(nodes)
global nwdirected_`j' = r(directed)
global nwlabs_`j' = r(labs)
scalar movenw = "\$nw_`next'"
global nw_`j' `=movenw'
mata: mata drop nw_mata`j'
mata: nw_mata`j' = nw_mata`next'
}
// clean-up
macro drop nw_$nwtotal
macro drop nwsize_$nwtotal
macro drop nwname_$nwtotal
macro drop nwdirected_$nwtotal
macro drop nwlabs_$nwtotal
macro drop nwedgelabs_$nwtotal
mata: mata drop nw_mata$nwtotal
global nwtotal `=$nwtotal - 1'
global nwtotal_mata = `=$nwtotal_mata - 1'
}
}
nwcompressobs
mata: st_rclear()
end
*! v1.5.0 __ 17 Sep 2015 __ 13:09:53
*! v1.5.1 __ 17 Sep 2015 __ 14:54:23
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/xiahanlin/nwcommands.git
git@gitee.com:xiahanlin/nwcommands.git
xiahanlin
nwcommands
nwcommands
master

搜索帮助

0d507c66 1850385 C8b1a773 1850385