【问题标题】:Print file name in quotation marks using cat and sprintf使用 cat 和 sprintf 在引号中打印文件名
【发布时间】:2020-10-05 05:31:49
【问题描述】:

我有一个包含文件名的向量,我需要在文件上准确地写入以下字符串,在引号中包含以下路径,并且还能够输入第 i 个文件名。我想得到(用引号引起来):

"C:\Users\Enrico\Tesi\Paullo\TIMESERIES\001.dat"

成为files[i] <- "001.dat",因此我尝试了:

sprintf(cat('"',"c:\\Users\\Enrico\\Tesi\\Paullo\\TIMESERIES\\%s", '"', sep=""), files[i])

但我无法正确插入字符串,我得到:

"C:\Users\Enrico\Tesi\Paullo\TIMESERIES\%s"

谁能帮我连接 cat 和 sprintf?非常感谢

【问题讨论】:

    标签: r


    【解决方案1】:

    您的sprintf 应如下所示:

    sprintf("\"c:\\Users\\Enrico\\Tesi\\Paullo\\TIMESERIES\\%03d.dat\"", i)
    

    cat 应该在sprintf 之外,如果你想在不同的行上打印文件,你可以添加一个换行符 ("\n")。所以在一个循环中,我们可以这样做:

    for(i in 1:10) {
      cat(sprintf("\"c:\\Users\\Enrico\\Tesi\\Paullo\\TIMESERIES\\%03d.dat\"", i), "\n")
    }
    #> "c:\Users\Enrico\Tesi\Paullo\TIMESERIES\001.dat" 
    #> "c:\Users\Enrico\Tesi\Paullo\TIMESERIES\002.dat" 
    #> "c:\Users\Enrico\Tesi\Paullo\TIMESERIES\003.dat" 
    #> "c:\Users\Enrico\Tesi\Paullo\TIMESERIES\004.dat" 
    #> "c:\Users\Enrico\Tesi\Paullo\TIMESERIES\005.dat" 
    #> "c:\Users\Enrico\Tesi\Paullo\TIMESERIES\006.dat" 
    #> "c:\Users\Enrico\Tesi\Paullo\TIMESERIES\007.dat" 
    #> "c:\Users\Enrico\Tesi\Paullo\TIMESERIES\008.dat" 
    #> "c:\Users\Enrico\Tesi\Paullo\TIMESERIES\009.dat" 
    #> "c:\Users\Enrico\Tesi\Paullo\TIMESERIES\010.dat" 
    
    

    【讨论】:

    • 非常感谢,它运行良好!不过我问你一个小问题,我应该将此字符串插入到一个小标题中,例如:my.tibble <- tibble (Name = "FILE", File = cat(sprintf("\"c:\\Users\\Enrico\\Tesi\\Paullo\\TIMESERIES\\%03d.dat\"", i)) 但它不起作用,我必须将字符串插入到向量中吗?非常感谢您,给您带来的不便深表歉意
    • @EnricoLochi 您可以在不添加cat 的情况下添加sprintf
    • 你是对的!我没有想到这一点,我刚开始使用 R .. 再次感谢!
    猜你喜欢
    • 1970-01-01
    • 2021-06-30
    • 2011-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-17
    • 1970-01-01
    • 2012-01-02
    相关资源
    最近更新 更多