有办法打印文本和变量内容在同一行?例如,

wd <- getwd()
print("Current working dir: ", wd)

我找不到任何允许我这样做的语法。


当前回答

{glue}包提供字符串插值。在这个例子中,{wd}被替换为变量的内容。还支持复杂表达式。

library(glue)

wd <- getwd()
glue("Current working dir: {wd}")
#> Current working dir: /tmp/RtmpteMv88/reprex46156826ee8c

由reprex包于2019-05-13创建(v0.2.1)

请注意,打印的输出不包含[1]工件和“引号”,其他答案使用cat()。

其他回答

你可以用浆糊打印

print(paste0("Current working dir: ", wd))

和猫

cat("Current working dir: ", wd)

一个技巧是像这样将你的代码段包含到()中:

(wd <- getwd())

这意味着当前工作目录被分配给wd,然后打印出来。

或者使用消息

message("Current working dir: ", wd)

@agstudy的答案在这里更合适

{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))

{glue}包提供字符串插值。在这个例子中,{wd}被替换为变量的内容。还支持复杂表达式。

library(glue)

wd <- getwd()
glue("Current working dir: {wd}")
#> Current working dir: /tmp/RtmpteMv88/reprex46156826ee8c

由reprex包于2019-05-13创建(v0.2.1)

请注意,打印的输出不包含[1]工件和“引号”,其他答案使用cat()。