Я хотел бы использовать cbind
в списке файлов. Однако каждый файл разбит на определенную хромосому (chr) (k in 1:29)
и конкретный образец (i in 1:777)
. Файлы такие:
образец1chr1.txt, образец1chr2.txt ... образец1chr29.txt, образец2chr1.txt ... образец777chr29.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
Ожидаемый результат (LRRawallchr1):
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 файлов типа (LRRawallchr1), по одному на Chr. Файлы "LRRawallchr,k" должны иметь размер 777+3 (800 столбцов). 3 названия строк и один столбец для каждого образца.
Ваше здоровье!