【问题标题】:R if else for write.table if character variable has valueR if else for write.table 如果字符变量有值
【发布时间】:2019-05-23 13:40:58
【问题描述】:

说,我有一个数据框,我需要用不同的后缀保存它,给定后缀变量的值与否。

后缀值在keyvalue变量中定义,为字符型。

keyvalue ="_TRP-1"
outdir= "/user/path/results/"
sample= "ADAS"

我需要使用if loop 将我的output 文件写入outdir 目录,条件是:如果keyvalue 不等于naelse

这是我尝试过的,

if (!is.na(keyvalue)){
    write.table(output, paste(outdir, sample, keyvalue,"_scores.tsv", sep=""), sep="\t", row.names=F, quote=F)

}else{
  write.table(output, paste(outdir, sample,"_scores.tsv", sep=""), sep="\t", row.names=F, quote=F)

}

最后,我想要一个名为ADAS_TRP-1_scores.tsv 的数据表/文件,给定一个keyvalue,否则一个名为ADAS_scores.tsv 的文件。但是,以上行没有生成任何表格和错误消息,任何建议都值得赞赏。 谢谢

【问题讨论】:

    标签: r dataframe if-statement


    【解决方案1】:

    如果您能提供错误消息将非常有帮助。 但乍一看,这有两个问题:

    1. 您在下面使用sample_id,但只定义了sample
    2. 您的outdir= "/user/path/results"-字符末尾缺少/

    所以代码是:

    write.table(
      output,
      paste( sample, keyvalue,"_scores.tsv", sep=""), sep="\t",
      row.names=F, quote=F
    )
    

    【讨论】:

    • paste 不会忽略,而是会在文件名中添加一个NA。但是,我的脚本现在正在运行,我的错,我的脚本缺少/(前向松弛)。在我的后期工作中修复上述行。无论如何,我已经接受了你的回答,因为你的意见很重要。谢谢
    • 没错,我的错。我会调整答案以防其他人阅读此内容
    猜你喜欢
    • 2014-05-15
    • 1970-01-01
    • 2022-01-10
    • 1970-01-01
    • 2023-04-09
    • 1970-01-01
    • 2021-09-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多