【问题标题】:result of search() as character stringsearch() 的结果为字符串
【发布时间】:2015-03-15 23:55:30
【问题描述】:

我需要用引号和逗号以"package-name","package-name","package-name" 的形式显示命令(.packages.()) 的结果。我尝试了printpaste ...但即使经过四个小时我也无法得到正确的结果!

paste((.packages()),collapse=",")

几乎可行,但引号仅在第一个和最后一个位置。而collapse="","" 不起作用。 有人可以帮帮我吗?

最好的

【问题讨论】:

  • 折叠参数可能是"\",\""'","'。如果您希望双引号字符实际上是真正的字符,则可以在“外部”上使用单引号。

标签: r collapse


【解决方案1】:

使用paste 尝试两次:

paste0('"',paste((.packages()),collapse='","'),'"')

【讨论】:

    【解决方案2】:

    这与您的类似,只是我使用 sprintf('"%s"', .packages()) 而不是 .packages() 在包周围添加引号:

    > paste(sprintf('"%s"', .packages()), collapse=",")
    [1] "\"stats\",\"graphics\",\"grDevices\",\"utils\",\"datasets\",\"methods\",\"base\""
    

    您可能会被所有\" 抛弃,但这就是R prints 双引号的方式(它实际上是一个字符,双引号)。如果您将它们传递给cat 或其他用于写入文件/文件句柄的函数,事情会如您所愿:

    > cat(paste(sprintf('"%s"', .packages()), collapse=","))
    "stats","graphics","grDevices","utils","datasets","methods","base"
    

    【讨论】:

      【解决方案3】:

      catpaste可以做到。;

       cat("\"", paste0(  .packages()[1:15] , collapse="\", \""), "\"", sep="")
       #"stats4", "latticeExtra", "RColorBrewer", "lattice", "sp", "Formula", "cluster", "sos", "brew", "stats", "graphics", "grDevices", "utils", "datasets", "methods"
      

      如果您只查看粘贴版本的控制台输出,您就会明白为什么我使用 cat 来整理末端并让显示看起来不那么神秘:

       paste0(  .packages()[1:15] , collapse="\", \"")
      #[1] "stats4\", \"latticeExtra\", \"RColorBrewer\", \"lattice\", \"sp\", \"Formula\", \"cluster\", \"sos\", \"brew\", \"stats\", \"graphics\", \"grDevices\", \"utils\", \"datasets\", \"methods"
      

      在经历了这个之后,我意识到它与 agstudy 的贡献并没有太大的不同,但是cat 函数确实可以让您更完全地控制显示的内容。 cat 的缺点是您不能将输出分配给对象。如果你这样做了,res 中将没有值:

      res <- cat("\"", paste0(  .packages()[1:15] , collapse="\", \""), "\"")
      res
      # NULL
      

      【讨论】:

        猜你喜欢
        • 2011-11-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-05-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多