2017-04-11 59 views
0

我想用readlines方法功能通过线读取文本文件行提取从两个文件中的R相同内容的行

69C_t.txt

另外,我想用条件编写一个简单的for循环来提取两个文件中的相同行。

69C_t <- "69C_t.txt" 
conn <- file(69C_t,open="r") 
t <-readLines(conn) 
69C_b <- "69C_b.txt" 
conn <- file(69C_b,open="r") 
b <-readLines(conn) 
for (i in 1:length(t)){ 
    for (j in 1:length(b)){ 
    if (i==j) 
    write(t[i], file = "overlap.txt") 
    } 
} 
close(tumor) 

但是,似乎只打印出第一行。 有人可以请检查吗?

+0

您正在比较'i'和'j',而不是't [i]'和'b [j]'。如果你用这种方式编写一个文件,你应该首先打开'con',并在循环结束时关闭它,否则每次都会覆盖它。 –

+0

@AndrewGustar你完全正确。谢谢。 – user3631848

回答

1

更快的方法是代替环,

writeLines(t[t %in% b],"overlap.txt") 
0

如何有关添加附加在写入功能: 写(T [1],FILE = “overlap.txt”,追加= TRUE)

+0

是的,应该是if(b [j] == t [i])和write(b [j],file =“overlapping.txt”,append = TRUE) – user3631848