使用R在文本文件中查找数据的直径

时间:2017-03-15 16:34:09

标签: r igraph graph-theory

我有一个包含20000行和3列Here you can find a sample from the out1.txt file的文件。我试图将线导入R然后找到每20行的直径(我的意思是将20000行分成1000个部分,每个部分由20行组成)所以首先我需要分别读取每20行然后应用直径函数在R。

之后,我需要以图形的形式阅读每个部分,然后找到直径。

包含20000行的文件的名称是(out1.txt),我将用它写的文件的名称100个部分的直径是outfile(因此outfile将包含每行100行)表示out1.txt中的20行的直径

代码是:

setwd("Desktop")
outfile<- file('outfile', 'w')
library("igraph")
X<-read.table("out1.txt")
l=1;
t=1;
while (t<=20000){
for (i in t:t+19){
for (k in 1:3) {
T<- matrix(nrow=20, ncol=3);
T[l,k]<-X[i,k];
}
l=l+1;
}
t=t+20;
l=1;
gg<-graph.data.frame(T,directed=FALSE)
C<-diameter(gg,directed=FALSE,weights=NULL)
writeLines(C,con=outfile)
}

我遇到了错误,但我无法理解它的含义是什么,错误:

Error in writeLines(C, con = outfile) : invalid 'text' argument

非常感谢任何建议或帮助

1 个答案:

答案 0 :(得分:0)

我认为你可以简化你的代码,因为你想要20块。另外,我认为你需要追加结果,否则,你将在每个循环中覆盖你的。试试这个:

 DF <- data.frame(C1=sample(1:1000,200), C2=sample(1:1000,200))
outfile<- file('outfile.txt')
for(i in seq(1,200, 20)){
  for(j in seq(20,200, 20)){
    g <- as.character(diameter(graph.data.frame(DF[i:j, ], directed = F),directed=FALSE,weights=NULL))
    write.table(g,"outfile.txt", append = T, col.names = F, row.names = F)
  }
}
close(outfile)