有没有办法在同一行上打印文本和可变内容?例如,
wd <- getwd()
print("Current working dir: ", wd)
我找不到任何可以使我做到这一点的语法。
有没有办法在同一行上打印文本和可变内容?例如,
wd <- getwd()
print("Current working dir: ", wd)
我找不到任何可以使我做到这一点的语法。
Answers:
{glue}提供了更好的字符串插值,请参见我的其他答案。而且,正如戴尼斯(Dainis)正确提到的那样,
sprintf()
并非没有问题。
还有sprintf()
:
sprintf("Current working dir: %s", wd)
要打印到控制台输出,请使用cat()
或message()
:
cat(sprintf("Current working dir: %s\n", wd))
message(sprintf("Current working dir: %s\n", wd))
sprintf
这不会打印,只会格式化字符串。脚本内部需要print(sprintf(...))之类的东西。
或使用 message
message("Current working dir: ", wd)
@agstudy的答案在这里更合适
最简单的方法是使用 paste()
> paste("Today is", date())
[1] "Today is Sat Feb 21 15:25:18 2015"
paste0()
将导致以下结果:
> paste0("Today is", date())
[1] "Today isSat Feb 21 15:30:46 2015"
注意,字符串和x之间没有默认的分隔符。在字符串末尾使用空格是一种快速解决方案:
> paste0("Today is ", date())
[1] "Today is Sat Feb 21 15:32:17 2015"
然后将任一功能与 print()
> print(paste("This is", date()))
[1] "This is Sat Feb 21 15:34:23 2015"
要么
> print(paste0("This is ", date()))
[1] "This is Sat Feb 21 15:34:56 2015"
正如其他用户所说,您还可以使用 cat()
sep = ''
否则您将获得额外的空间。