我正在尝试运行一个循环来遍历许多保存为 .csv 文件的邻接列表,将它们转换为边缘列表和网络对象,并使用文件名保存其中的每一个。
问题是a)代码似乎在文件名列表中循环但不产生任何输出b)它不会使用文件名保存网络对象(它似乎每次都覆盖)。
请注意,该代码适用于由“filename.csv”标识的单个文件,以替换 for 循环中的“f”。
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
}
任何帮助将不胜感激!