在R中删除带有接收器和sprintf输出的[1]

She*_*ila 3 printf r sink

我正在尝试使用sprintf和sink编写一系列字符和数值:

 sink("sample.txt", append=TRUE, split=TRUE)
 sprintf("Hello World")
Run Code Online (Sandbox Code Playgroud)

当然,上面是一个例子,所以我没有上面数据框的数值,但我需要使用sprintf.

文本文件(sample.txt)中的输出如下所示:

 [1] Hello World
Run Code Online (Sandbox Code Playgroud)

如何从线上删除[1]?有没有办法使[1]不会写入文件?

Rei*_*son 6

有两种选择,使用cat()writeLines()

> cat(sprintf("Hello World"), "\n")
Hello World 
> writeLines(sprintf("Hello World"))
Hello World
Run Code Online (Sandbox Code Playgroud)

你遇到的问题是sprintf()返回一个字符向量,就像任何其他字符向量一样,R就像一个向量一样打印print它.你想要的是字符向量的第一个元素包含的字符串(在这种情况下唯一的一个).因此我们使用工具写出不打印字符向量的字符串.

请注意,这两个都可以通过file参数(in cat())或con参数(in writeLines())直接写入文件,您可能会发现它很有用.