首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何导出gsub编辑的数据

如何导出gsub编辑的数据
EN

Stack Overflow用户
提问于 2019-04-02 23:20:50
回答 1查看 37关注 0票数 0

所以我最近了解了gsub,我认为它可以为我带来奇迹,但我对此感到有点困惑。我想我只是没有使用它的经验。我有一堆想要在集群上运行的脚本,但是提交的作业的格式是特定的。所以我想使用gsub或类似的包来编辑“主”脚本。然而,当我运行gsub时,它改变了我的数据结构。下面我将给出一个例子。

下面是我的df的一个例子。如果你在重新创建这个文件时遇到问题,请告诉我,我不得不使用一下dput输出。

dput(df)

代码语言:javascript
复制
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来更改脚本中需要更改的部分

代码语言:javascript
复制
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似乎不喜欢的格式中

代码语言:javascript
复制
"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?或者有没有更好的包可以使用?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-02 23:31:50

gsub太棒了!很高兴你在学习它。

现在发生的情况是,您的数据正在被转换为字符串。如果您在当前gsub代码之后运行class(df),您将看到它已被转换为character (即字符串)。

我建议的是循环遍历V1中的每一行,并对其应用您的gsub更改。这不是最快的方法,但它可以完成工作:

代码语言:javascript
复制
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'])
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55478279

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档