有办法打印文本和变量内容在同一行?例如,
wd <- getwd() print("Current working dir: ", wd)
我找不到任何允许我这样做的语法。
你可以在print中使用paste
print
paste
print(paste0("Current working dir: ", wd))
或cat
cat
cat("Current working dir: ", wd)
或者使用message
message
message("Current working dir: ", wd)
@agstudy的答案在这里更合适
{glue}提供了更好的字符串插值,参见我的另一个答案。此外,正如Dainis正确地提到的那样,sprintf()并非没有问题。
sprintf()
还有sprintf():
sprintf("Current working dir: %s", wd)
要打印到控制台输出,使用cat()或message():
cat()
message()
cat(sprintf("Current working dir: %s\n", wd)) message(sprintf("Current working dir: %s\n", wd))
最简单的方法是使用paste()
paste()
> paste("Today is", date()) [1] "Today is Sat Feb 21 15:25:18 2015"
paste0()将导致以下结果:
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()
> 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()
正如其他用户所说,cat()可能是最好的选择。
@krlmlr建议使用sprintf(),它目前是排名第三的答案。Sprintf()不是一个好主意。来自R文档:
格式字符串传递给操作系统的sprintf函数,不正确的格式会导致后者崩溃R进程。
没有很好的理由使用sprintf()而不是cat或其他选项。
您可以使用paste0或cat方法将字符串与R中的变量值组合
例如:
paste0("Value of A : ", a) cat("Value of A : ", a)
{胶}包提供字符串插值。在本例中,{wd}被替换为变量的内容。还支持复杂表达式。
{wd}
library(glue) wd <- getwd() glue("Current working dir: {wd}") #> Current working dir: /tmp/RtmpteMv88/reprex46156826ee8c
由reprex包 (v0.2.1)创建于2019-05-13
请注意打印的输出不包含[1]工件和"引号,其他答案使用cat()。
[1]
"
一个技巧是像这样将你的代码段包含在()中:
()
(wd <- getwd())
这意味着当前工作目录被赋值给wd,然后打印出来。
wd