2016-06-14 6 views
0

У меня есть 200 файлов в одной папке, как chin01.txt, chin02.txt и т. Д. каждая таблица read.table каждого .txt-файла создает n строк по 2 столбцам данных данных с именами столбцов и строк.имена заменяющего столбца с именами файлов соответствующего файла в папке

Теперь я хочу изменить имя первого столбца каждого кадра данных на соответствующее имя файла, например chi001, что я должен делать? Ниже мои первые строки кодов:

files_all <- list.files(path="D:\R\C_test", pattern="*.txt", full.names=T, recursive=FALSE) 

for (currentFile in files_all){ 
    file <- read.table(currentFile, header=F) 
    columnames(file) <- c(**name of currentFile such as chin001**,"depth") 
    write.table(file, file=sub(pattern=".txt$", replacement="_new.txt", x=currentFile),sep="\t", quote=F, row.names=T, col.names=T) 
} 

, но я не знаю, как писать имени CurrentFile, такие как chin001 части, спасибо за любой ответ

ответ

1

Удалите .txt часть из filename (есть много способов сделать это), затем замените имя первого столбца на это имя.

currentFile <- sub(".txt", "", file) # file could be e.g. filename.txt 
names(file)[1] <- currentFile