Как добавить символ при сохранении файлов с помощью lapply - PullRequest
1 голос
/ 09 апреля 2019

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

  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 Ответ

0 голосов
/ 09 апреля 2019

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

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

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

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

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

...