0

ループを実行して、.csv ファイルとして保存された多数の隣接リストを反復処理し、それらをエッジ リストとネットワーク オブジェクトに変換し、ファイル名を使用してこれらをそれぞれ保存しようとしています。

問題は、a) コードがファイル名のリストを巡回しているように見えるが、出力を生成しない b) ファイル名を使用してネットワーク オブジェクトを保存しない (毎回上書きするように見える) ことです。

このコードは、for ループの "f" の代わりに "filename.csv" で識別される個々のファイルに対して正常に機能することに注意してください。

    l.files <- list.files(patt='.*csv$')
    i <- 0
    for (f in l.files) {

        lines=scan(f,what="character",sep="\n")
        lines=gsub(","," ",lines)
        lines=gsub("[ ]+$","",gsub("[ ]+"," ",lines))
        adjlist=strsplit(lines," ")
        col1=unlist(lapply(adjlist,function(x) rep(x[1],length(x)-1)))
        col2=unlist(lapply(adjlist,"[",-1))
        el=cbind(col1,col2)
        #If second column of el contains 0 then delete
        row_sub = apply(el, 1, function(row) all(row !=0 ))
        #This subset then saved as the new edgelist
        el <- el[row_sub,]
        #Save edgelist using the filename
        el[f] <- el
        summary(el)
        i=i+1
    }

どんな助けでも大歓迎です!

4

1 に答える 1