Как добавить символ при сохранении файлов с помощью lapply

#r #lapply

#r #lapply

Вопрос:

У меня есть следующий список

   L = list.files(".", ".txt")
  

что такое

    a.txt
   b.txt
   c.txt
  

и я хочу применить некоторый код ко всем файлам в этом списке, но я хочу сохранить фреймы данных с тем же именем плюс какой-нибудь символ, чтобы указать, что он изменен. Например

    a_modified.txt
   b_modified.txt
   c_modified.txt
  

В настоящее время я использую этот код:

    datalist = lapply(L, function(x) {
   DF = read.csv(x, sep = ",")
   DF$X = gsub("[:.:][[:digit:]]{1,3}","", DF$X))
   colnames(DF)[colnames(DF)=="X"] <- "ID"
   DF <- merge(DF, genes ,by="ID")
   write.csv(DF, x)
   return(DF)
   })
  

Я пытался использовать

    write.csv(DF, x "_modified")
  

что было явно неправильно, поскольку write.csv не принимает эту точную операцию.

Есть идеи?

Ответ №1:

Нам нужно paste вместо

 write.csv(DF, paste0(sub("\.txt", "", x), "_modified.csv"))
  

или это можно сделать внутри sub самого себя

 write.csv(DF, sub("\.txt", "_modified.csv", x))
  

ПРИМЕЧАНИЕ: первоначальные наборы данных были .txt