我想cbind
在文件列表中使用。但是,每个文件都拆分为特定的染色体 (chr)(k in 1:29)
和特定的样本(i in 1:777)
。这些文件是这样的:
sample1chr1.txt,sample1chr2.txt ... sample1chr29.txt,sample2chr1.txt ... sample777chr29.txt
所有文件都具有完全相同的行名(前 3 列代表我的行名)。我想为每个合并到所有示例文件的 chr 获取一个最终文件,并且不要重复最终文件中的行名(前 3 列代表我的行名)。
我试过这个:
#Creating file with row names (3 first columns) to each Chr
{
{for(k in 1:29){
infile <- paste0("sample1chr",k,".txt")
outfile <- paste0("LRRrawallchr",k,".txt")
rows <- read.table(infile, header=TRUE, sep="\t")
rows <- rows[, -grep("Log.R.Ratio", colnames(rows))]
write.table(rows, outfile, sep=";")}}
#Cbind in one file per Chr
{ for(i in 1:777)
for(k in 1:29){
base <- paste0("LRRrawallchr",k,".txt")
chr <- read.table(base, header=TRUE, sep=";")
infile <- paste0("sample",i,"chr",k,".txt")
chr2 <- read.table(infile, header=TRUE, sep="\t")
outfile <- paste0("LRRrawallchr",k,".txt")
chr2 <- chr2[, -grep("Name", colnames(chr2))]
chr2 <- chr2[, -grep("Chr", colnames(chr2))]
chr2 <- chr2[, -grep("Position", colnames(chr2))]
chr <- cbind(chr, chr2)
write.table(chr, outfile, sep=";", row.names=FALSE, col.names=FALSE)}
}
输入示例(sample1chr1.txt):
Name Chr Position sample1value
BAC-11034 1 128 0.302
BAC-11044 1 129 -0.56
BAC-11057 1 134 0.0840
输入示例(sample2chr1.txt):
Name Chr Position sample2value
BAC-11034 1 128 0.25
BAC-11044 1 129 0.41
BAC-11057 1 134 -0.14
预期输出(LRRrawallchr1):
Name Chr Position sample1value sample2value
BAC-11034 1 128 0.302 0.25
BAC-11044 1 129 -0.56 0.41
BAC-11057 1 134 0.0840 -0.14
我有 22553 个不同的 .txt 文件(29 个文件(每个 chr 一个)到 777 个样本中的每一个)。所有 22553 个文件(sample1chr1.txt、sample1chr2.txt ... sample1chr29.txt、sample2chr1.txt ... sample777chr29.txt)都与上面的示例相同。
我想要 29 个文件,例如 (LRRrawallchr1),每个 Chr 一个。“LRRrawallchr,k”文件必须包含 777+3(800 列)。每个样本 3 行名称和一列。
干杯!