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 不接受这个确切的操作。
有任何想法吗?
解决方案
我们需要paste
而不是+
write.csv(DF, paste0(sub("\\.txt", "", x), "_modified.csv"))
或者这可以在其内部sub
完成
write.csv(DF, sub("\\.txt", "_modified.csv", x))
注意:初始数据集是.txt
推荐阅读
- javascript - 为什么在Javascript中使用Date()时需要使用关键字new
- php - 在随机文本中的某些单词之前添加中断?
- python - 使用 keras 计算每个时期的 Fscore(不是批量)
- html - 如何缩放徽标块以完全适合导航栏?
- json - 有没有办法将数据从 json 文件导入 sqlite,其中表列名称与 json 文件中的键值不同?
- python - Tkinter 进入多个验证
- sql - PostgreSQL 在 date1 和 date2 之间选择日期
- css - angular/ng-bootstrap/css 如何防止将前 100px 用于任何显示,但设置为固定顶部的标题?
- r - 如何在 R 中为图形的背景部分着色以指示感兴趣的时间段
- ruby-on-rails - 通过一个控制器操作为两个模型创建 Rails 对象