у меня есть следующий список
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 не принимает именно эту операцию.
Есть идеи?
Нам нужно paste
вместо +
write.csv(DF, paste0(sub("\\.txt", "", x), "_modified.csv"))
или это можно сделать внутри себя sub
write.csv(DF, sub("\\.txt", "_modified.csv", x))
ПРИМЕЧАНИЕ: исходные наборы данных были .txt