在R中将字符串和变量内容打印在同一行上

mlnl4t2r  于 2023-11-14  发布在  其他
关注(0)|答案(9)|浏览(143)

有没有一种方法可以在同一行上打印文本和变量内容?例如,

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

字符串
我找不到任何关于语法的东西,可以让我这样做。

qmb5sa22

qmb5sa221#

您可以将pasteprint一起使用

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

字符串
cat

cat("Current working dir: ", wd)

xfb7svmp

xfb7svmp2#

{glue}提供了更好的字符串插值,参见my other answer。此外,正如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))

uelo1irk

uelo1irk3#

或者使用message

message("Current working dir: ", wd)

字符串
@agstudy的回答在这里更合适

9w11ddsr

9w11ddsr4#

最简单的方法是使用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()

8zzbczxx

8zzbczxx5#

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

library(glue)

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

字符串
创建于2019-05-13由reprex package(v0.2.1)
请注意,打印输出不包含[1]工件和"引号,其他答案使用cat()

pgccezyw

pgccezyw6#

正如其他用户所说,cat()可能是最好的选择。
@krlmlr建议使用sprintf(),目前它是排名第三的答案。sprintf()不是一个好主意。来自R文档:
格式字符串被传递到OS的sprintf函数,不正确的格式会导致后者崩溃R进程。
没有充分的理由使用sprintf()而不是cat或其他选项。

rta7y2nd

rta7y2nd7#

你可以使用paste0或cat方法来合并字符串和R中的变量值
例如:

paste0("Value of A : ", a)

cat("Value of A : ", a)

字符串

j0pj023g

j0pj023g8#

一个技巧是将您的代码片段包含到()中,如下所示:

(wd <- getwd())

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

tct7dpnv

tct7dpnv9#

wd<-“D:/user”print(paste 0(“当前工作目录:“,wd))

相关问题