如何导出gsub编辑的数据
How to export data edited by gsub
所以我最近了解了 gsub
,我认为它可以为我创造奇迹,但我对此有点困惑。我想我只是没有使用它的经验。我有一堆脚本想 运行 在集群上,但是提交的作业的格式是特定的。所以我想使用 gsub
或类似的包来编辑 "master" 脚本。但是,当我 运行 gsub
时,它改变了我的数据结构。下面我举个例子。
这是我的 df 的一个例子。如果您在重新创建此文件时遇到问题,请告诉我,我不得不稍微调整一下 dput
输出。
dput(df)
df <- structure(list(V1 = c("#!/bin/bash", "#BSUB -W 2880", "#BSUB -n 8", "#BSUB -R span[ptile=8]", "#BSUB -o limaout.%J.txt", "#BSUB -e limaerr.%J.txt", "", "export PATH=$/bin:$PATH", "source activate anaCogent5.2", "", "lima /cell1.ccs.bam /primers.fasta /cell1.removed.ccs.bam --isoseq --no-pbi", "", "#BSUB -J lima.cell1")),
.Names = "V1",
row.names = c(NA, -13L),
class = c("data.table", "data.frame"))
我运行下面的gsub来改变我需要改变的脚本部分
df <- gsub("cell1.ccs.bam", "cell2.ccs.bam", df)
df <- gsub("primers.fasta", "primers2.fasta", df)
df <- gsub("cell1.removed.ccs.bam", "cell2.removed.ccs.bam", df)
df <- gsub("#BSUB -J lima.cell1", "#BSUB -J lima.cell2", df)
但是,gsub 将我的数据框更改为一个值(如果这有意义吗?我正在使用 Rstudio,它会将 df
更改为)。当我 运行 以下
df <- as.data.frame(df)
进行了正确的替换,但数据的格式不再正确。看起来像这样。抱歉,这不是 dput
格式。数据以 dput
似乎不喜欢的格式放置
"c(\"#!/bin/bash\", \"#BSUB -W 2880\", \"#BSUB -n 8\", \"#BSUB -R span[ptile=8]\", \"#BSUB -o limaout.%J.txt\", \"#BSUB -e limaerr.%J.txt\", \"\", \"export PATH=$/bin:$PATH\", \"source activate anaCogent5.2\", \"\", \"lima /cell2.ccs.bam /primers2.fasta /cell2.removed.ccs.bam --isoseq --no-pbi\", \"\", \"#BSUB -J lima.cell2\")"
我使用 gsub
正确吗?或者有更好的包可以用吗?
gsub
太棒了!很高兴你正在学习它。
现在正在将您的数据转换为字符串。如果您在当前 gsub
代码之后 运行 class(df)
,您会看到它已被转换为 character
(即字符串)。
我的建议是遍历 V1 中的每一行并在其上应用您的 gsub
更改。这不是最快的方法,但可以完成工作:
for(i in 1:nrow(df)){
df[i,'V1'] <- gsub("cell1.ccs.bam", "cell2.ccs.bam", df[i,'V1'])
df[i,'V1'] <- gsub("primers.fasta", "primers2.fasta", df[i,'V1'])
df[i,'V1'] <- gsub("cell1.removed.ccs.bam", "cell2.removed.ccs.bam", df[i,'V1'])
df[i,'V1'] <- gsub("#BSUB -J lima.cell1", "#BSUB -J lima.cell2", df[i,'V1'])
}
所以我最近了解了 gsub
,我认为它可以为我创造奇迹,但我对此有点困惑。我想我只是没有使用它的经验。我有一堆脚本想 运行 在集群上,但是提交的作业的格式是特定的。所以我想使用 gsub
或类似的包来编辑 "master" 脚本。但是,当我 运行 gsub
时,它改变了我的数据结构。下面我举个例子。
这是我的 df 的一个例子。如果您在重新创建此文件时遇到问题,请告诉我,我不得不稍微调整一下 dput
输出。
dput(df)
df <- structure(list(V1 = c("#!/bin/bash", "#BSUB -W 2880", "#BSUB -n 8", "#BSUB -R span[ptile=8]", "#BSUB -o limaout.%J.txt", "#BSUB -e limaerr.%J.txt", "", "export PATH=$/bin:$PATH", "source activate anaCogent5.2", "", "lima /cell1.ccs.bam /primers.fasta /cell1.removed.ccs.bam --isoseq --no-pbi", "", "#BSUB -J lima.cell1")),
.Names = "V1",
row.names = c(NA, -13L),
class = c("data.table", "data.frame"))
我运行下面的gsub来改变我需要改变的脚本部分
df <- gsub("cell1.ccs.bam", "cell2.ccs.bam", df)
df <- gsub("primers.fasta", "primers2.fasta", df)
df <- gsub("cell1.removed.ccs.bam", "cell2.removed.ccs.bam", df)
df <- gsub("#BSUB -J lima.cell1", "#BSUB -J lima.cell2", df)
但是,gsub 将我的数据框更改为一个值(如果这有意义吗?我正在使用 Rstudio,它会将 df
更改为)。当我 运行 以下
df <- as.data.frame(df)
进行了正确的替换,但数据的格式不再正确。看起来像这样。抱歉,这不是 dput
格式。数据以 dput
似乎不喜欢的格式放置
"c(\"#!/bin/bash\", \"#BSUB -W 2880\", \"#BSUB -n 8\", \"#BSUB -R span[ptile=8]\", \"#BSUB -o limaout.%J.txt\", \"#BSUB -e limaerr.%J.txt\", \"\", \"export PATH=$/bin:$PATH\", \"source activate anaCogent5.2\", \"\", \"lima /cell2.ccs.bam /primers2.fasta /cell2.removed.ccs.bam --isoseq --no-pbi\", \"\", \"#BSUB -J lima.cell2\")"
我使用 gsub
正确吗?或者有更好的包可以用吗?
gsub
太棒了!很高兴你正在学习它。
现在正在将您的数据转换为字符串。如果您在当前 gsub
代码之后 运行 class(df)
,您会看到它已被转换为 character
(即字符串)。
我的建议是遍历 V1 中的每一行并在其上应用您的 gsub
更改。这不是最快的方法,但可以完成工作:
for(i in 1:nrow(df)){
df[i,'V1'] <- gsub("cell1.ccs.bam", "cell2.ccs.bam", df[i,'V1'])
df[i,'V1'] <- gsub("primers.fasta", "primers2.fasta", df[i,'V1'])
df[i,'V1'] <- gsub("cell1.removed.ccs.bam", "cell2.removed.ccs.bam", df[i,'V1'])
df[i,'V1'] <- gsub("#BSUB -J lima.cell1", "#BSUB -J lima.cell2", df[i,'V1'])
}