在excel(和Excel VBA)中,使用"&"连接文本和变量非常有用:
a = 5
msgbox "The value is: " & a
将给出
"The value is: 5"
我怎样才能在R中这样做?我知道有一种方法可以使用" paste"。但是我想知道是否有任何技巧可以像在Excel VBA中一样简单。
提前致谢。
答案 0 :(得分:5)
This blog post建议定义自己的连接运算符,它类似于VBA(和Javascript)所具有的功能,但它保留了
的强大功能:
我不是这个解决方案的忠实粉丝,因为它有点掩盖了paste
在幕后所做的事情。例如,你会直觉这会发生吗?
"%+%" <- function(...) paste0(..., sep = "")
"Concatenate hits " %+% "and this."
# [1] "Concatenate hits and this."
例如,在Javascript中,这会给你paste
,这是完全不同的。我不能代表Excel,但是你应该考虑一下这个解决方案对你来说是否有点困惑而不是它有用。
如果你需要类似Javascript的解决方案,你也可以试试这个:
"Concatenate this string " %+% "with this vector: " %+% 1:3
# [1] "Concatenate this string with this vector: 1"
# [2] "Concatenate this string with this vector: 2"
# [3] "Concatenate this string with this vector: 3"
但我没有进行过广泛的测试,因此请留意意外的结果。
答案 1 :(得分:1)
另一种可能性是使用sprintf
:
a <- 5
cat(sprintf("The value is %d\n",a))
## The value is 5
%d
表示整数格式(%f
将给出&#34;值为5.000000&#34;)。 \n
表示字符串末尾的换行符。
sprintf()
比paste
或paste0
更方便,例如
sprintf("The value of a is %f (95% CI: {%f,%f})",
a_est,a_lwr,a_upr)