用igraph在R中自动绘制大量社交网络的过程

用igraph在R中自动绘制大量社交网络的过程,r,graph,automation,social-networking,R,Graph,Automation,Social Networking,我有一个包含大量邻接矩阵的文件夹,我想将其绘制成图形并保存为单独文件夹中的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) 库(igraph) da

我有一个包含大量邻接矩阵的文件夹,我想将其绘制成图形并保存为单独文件夹中的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)
库(igraph)
dat这应该有效:

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
}
setwd(您的目录)
文件这应该可以:

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
}
setwd(您的目录)

files
files是的,回答很好,解释得很好,但是您可以避免使用shell命令,只使用R提供的函数来全局搜索/查找带有通配符的文件。啊,太好了,我不知道list.files()。谢谢。@Hillarysands谢谢你的回答!但是,当我输入
文件时,您是否在mac/unix计算机上?终端命令中应包含Echo。在任何情况下,您都可以替换我的两个“文件”
files是的,回答得很好,解释得很好,但是您可以避免使用shell命令,只使用R提供的函数来全局搜索/查找带有通配符的文件。啊,太好了,我不知道list.files()。谢谢。@Hillarysands谢谢你的回答!但是,当我输入
文件时,您是否在mac/unix计算机上?终端命令中应包含Echo。在任何情况下,你都可以替换我的两个文件