Я пытаюсь импортировать серию файлов из каталога и преобразовать каждый из них в кадр данных.Я также хотел бы использовать заголовок файла для создания двух новых столбцов со значениями, зависящими от заголовка.Входные файлы имеют формат: xx_yy.out
Где XX может принимать одно из трех значений.YY в настоящее время имеет два возможных значения.В будущем эти цифры будут расти.
Редактирование решения на основе комментариев (оригинальный вопрос см. Ниже)
отредактировано еще раз, чтобы отразить предложения @JoshO'Brien
filelist <- as.list(dir(pattern = ".*.out"))
for(i in filelist) {
tempdata <- read.table(i) #read the table
filelistshort <- gsub(".out$", "", i) #remove the end of the file
tempsplit <- strsplit(filelistshort, "_") #remove the underscore
xx <- sapply(tempsplit, "[", 1) #get xx
yy <- sapply(tempsplit, "[", 2) #get yy
tempdata$XX <- xx #add XX column
tempdata$YY <- yy #add YY column
assign(gsub(".out","",i), tempdata) # give the dataframe a shortened name
}
Ниже приведен оригинальный код, показывающий, что я хотел использовать некоторые средства для получения значений XX и YY, но не был уверен в лучшем способе:
Мой план (после @romanlustrik post ) выглядит следующим образом:
filelist <- as.list(dir(pattern = ".*.out"))
lapply(filelist, FUN = function(x) {
xx <- grep() or pmatch()
yy <- grep() or pmatch()
x <- data.frame(read.table(x))
x$colx <- xx
x$coly <- yy
return(x)
})
где строки xx <-
и yy <-
будут поиском на основе pmatch или grep.Я играю вокруг, чтобы сделать одну из работ, но приветствую любые предложения.