1

我有一个包含大量邻接矩阵的文件夹,我想在单独的文件夹中绘制并保存为 jpeg。如果我想绘制单个网络,请执行以下操作:

library(igraph)
dat <- read.csv("myfile.csv",header=TRUE,row.names=1,check.names=FALSE)
g <- graph.adjacency(m,mode="undirected",weighted=NULL,diag=FALSE)
plot.igraph(g)

我如何将该操作应用于目录中的每个文件(例如 dir1)并将输出图形另存为 .jpg 在第二个目录(例如 dir2)中,将原始数据文件的文件名提供给 .jpg?

4

1 回答 1

4

这应该有效:

setwd(your_directory)
files <- system("echo *.csv", intern=TRUE) # captures output in character vector
files <- strsplit(files, split=" ")[[1]] # only works if there are no spaces in your filenames

for(file in files){
    # read in data
    dat <- read.csv(file,header=TRUE,row.names=1,check.names=FALSE)
    # make into a jpeg filename
    file <- gsub(file, pattern=".csv", replacement=".jpeg")
    jpeg(file)
    g <- graph.adjacency(m,mode="undirected",weighted=NULL,diag=FALSE)
    dev.off() # turns plotting off, needed for the jpeg() function to work well
}

干杯。-H

于 2013-09-25T05:00:07.213 回答