【发布时间】:2016-05-06 23:30:57
【问题描述】:
我想将四个.txt 文件合并到一个唯一的文件中。但是,这个想法不是简单的串联,而是输入文件之间的“交错”,其中file1 将是前三列,files 2-4 必须按后续顺序逐列粘贴。因此我们有:
file1:
file1 <- ' AX-1 1 125
AX-2 2 456
AX-3 3 3445'
file1 <- read.table(text=file1, header=F)
write.table(file1, "file1.txt", col.names=F, row.names=F, quote=F)
file2:
file2 <- ' AX-1 AA AB AA
AX-2 AA AA AB
AX-3 BB NA AB'
file2 <- read.table(text=file2, header=F)
write.table(file2, "file2.txt", col.names=F, row.names=F, quote=F)
file3:
file3 <- ' AX-1 0.20 -0.89 0.005
AX-2 0 -0.56 -0.003
AX-3 1.2 0.002 0.005'
file3 <- read.table(text=file3, header=F)
write.table(file3, "file3.txt", col.names=F, row.names=F, quote=F)
file4:
file4 <- ' AX-1 1 0 0.56
AX-2 0 0.56 0
AX-3 1 0 0.55'
file4 <- read.table(text=file34, header=F)
write.table(file4, "file4.txt", col.names=F, row.names=F, quote=F)
我预期的out 文件可能类似于:
out <- 'AX-1 1 125 AA 0.2 1 AB -0.89 0 AA 0.005 0.56
AX-2 2 456 AA 0 0 AA -0.56 0.56 AB -0.003 0
AX-3 3 3445 BB 1.2 1 NA 0.002 0 AA 0.005 0.55'
out <- read.table(text=out, header=F)
write.table(out, "out.txt", col.names=F, row.names=F, quote=F)
因此,在out 中:1-3 列是file1,4,7 and 10 列来自file2,5,8 and 11 列来自file3,6,9 and 12 列来自来自file4。
我在R 有一个想法,但是我的原始文件太大,需要很多时间。如果有人知道如何直接在 bash 中执行它,我将不胜感激。
【问题讨论】:
-
也许可以解释一下代码的作用,对于我们这些了解 Bash 但不了解 R 的人来说,
标签: bash text merge conditional concatenation