У меня есть 600 файлов .txt с разделителями табуляции, которые выглядят следующим образом:
barcode gene.symbol value
1 TCGA-61-2610-02A-01R-1141-07 15E1.2 -0.78175
2 TCGA-61-2610-02A-01R-1141-07 2'-PDE -1.0155
3 TCGA-61-2610-02A-01R-1141-07 7A5 0.029
4 TCGA-61-2610-02A-01R-1141-07 A1BG 0.96575
5 TCGA-61-2610-02A-01R-1141-07 A2BP1 -0.301
6 TCGA-61-2610-02A-01R-1141-07 A2M -2.21575
Я хочу собрать все 600 файлов в один фрейм данных так, чтобы gene.symbol был именами строк изначения будут объединены с первыми 12 символами штрих-кода, являющимися именем столбца.Поиск через SO, я думаю, что у меня есть цикл, который делает это с одной оговоркой.Вот что у меня есть (я все еще изучаю R, поэтому код может выглядеть очень грубым):
n = 600
df <- read.delim(file=paste("agilent1.txt")
df.tmp <- data.frame()
colnames(df) = c("barcode", "gene.symbol", levels(df$barcode))
df = df[2 :3]
как только у меня есть df со значениями первого файла, цикл начинает добавлять столбцы значений других файлов (файлы называются agilent1.txt, agilent2.txt и т. д.):
for (i in 2:n) {
df.tmp <- read.delim(file=paste("agilent", i, ".txt", sep="")
a <- as.character(levels(df.tmp$barcode))
a <- substr(a, 1, 12)
df <- cbind(df, a = df.tmp$value)
}
все работает НО в команде cbind, значение = df.tmp $ делает имя столбца a (что имеет смысл), но яхотите, чтобы значение a было именем столбца.
gene.symbol TCGA-61-2614 a a a a
1 15E1.2 0.80475 -0.47375 -0.26825 -0.13425 -0.78175
2 2'-PDE -0.1348125 -0.1565625 0.19475 -0.3819375 -1.0155
3 7A5 2.2735 2.4405 0.902 1.248 0.029
4 A1BG 0.817166666666667 -0.0471666666666667 -0.1005 -0.283333333333333 0.96575
5 A2BP1 -0.811333333333333 -1.02566666666667 -0.494833333333333 -0.948 -0.301
6 A2M -0.719 -1.00575 -1.07275 0.517 -2.21575
Это звучит так просто в моей голове, но я не могу найти ответ.Любая помощь будет принята с благодарностью.
Приветствия,
Ахмет