我有以下列表
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不接受此精确操作。
有什么想法吗?
答案 0 :(得分:0)
我们需要paste
而不是+
write.csv(DF, paste0(sub("\\.txt", "", x), "_modified.csv"))
或者这可以在sub
本身内完成
write.csv(DF, sub("\\.txt", "_modified.csv", x))
注意:初始数据集为.txt