使用Lapply保存文件时如何添加字符

时间:2019-04-09 14:27:43

标签: 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 个答案:

答案 0 :(得分:0)

我们需要paste而不是+

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

或者这可以在sub本身内完成

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

注意:初始数据集为.txt