是否有一个特定的R函数可以最大程度地控制打印字符串的格式?
考虑字符串是否有一个特定的R函数可以最大程度地控制打印字符串的格式?,r,println,R,Println,考虑字符串“Hello\n World!”。格式化和打印它的相关方法似乎是print。默认为,cat,如果需要,format,然后print或cat。然而,它们中的每一个似乎都能做一些其他人做不到的事情。是否有一个终极打印功能可以最大限度地控制字符串的格式/打印 例如,我在print、format或print中看不到任何地方。默认的文档会让他们尊重我的\n,并像cat那样在“Hello\n World!”中放一个换行符,但我也看不到如何让cat保留引号在“你好\n世界!“,正如print(“He
“Hello\n World!”
。格式化和打印它的相关方法似乎是print。默认为,cat
,如果需要,format
,然后print
或cat
。然而,它们中的每一个似乎都能做一些其他人做不到的事情。是否有一个终极打印功能可以最大限度地控制字符串的格式/打印
例如,我在print
、format
或print中看不到任何地方。默认的文档会让他们尊重我的\n
,并像cat
那样在“Hello\n World!”
中放一个换行符,但我也看不到如何让cat
保留引号在“你好\n世界!“
,正如print(“Hello\n World!”,quote=FALSE)
一样。如果我们也需要引号,请在cat中用dQuote
包装它。”
cat( dQuote("Hello \n World!", FALSE))
"Hello
World!"
foo = function(...) {
s = paste0("\"", ..., "\"")
cat(s)
}
foo("Hello \n World!")
#"Hello
# World!"
根据?cat
cat( dQuote("Hello \n World!", FALSE))
"Hello
World!"
foo = function(...) {
s = paste0("\"", ..., "\"")
cat(s)
}
foo("Hello \n World!")
#"Hello
# World!"
字符串按“原样”输出(与print.default不同,print.default转义不可打印的字符和反斜杠-如果要使用cat输出编码字符串,请使用encodeString)。应转换其他类型的R对象(例如,按“原样”字符或格式)在被传递到cat之前。这包括因子,作为整数向量输出
或者我们可以使用消息
。优点是它也可以与RMD
文件一起使用,这些消息
将打印在控制台上,而不是文档上
message('"Hello \n World!"')
#"Hello
# World!"
i、 e.作为试验,创建一个简单的RMD文件
---
output:
html_document:
df_print: paged
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE, cache = TRUE)
library(ggplot2)
```
```{r trial 1, echo = FALSE, message = FALSE}
message("data(mtcars) is created with message")
print("data(mtcars) is created with print")
glue::glue("data(mtcars is created with glue")
```
-输出
注意:我们已经指定了message=FALSE
。因此,它不会显示在文档中,而对于调试,它仍然会打印在Rmarkdown控制台输出上
...
data(mtcars) is created with message
output file: test1.knit.md
...
这可以从Tidyverse使用。glue将尊重\n
。您可以通过将字符串包装为单引号'
或使用\“
转义来打印双引号
库(胶水)
#用单引号括起来
胶水(“‘你好’\n世界!”)
#避开双引号
胶水(“\”你好\n世界!\“”)
只需修改cat
cat( dQuote("Hello \n World!", FALSE))
"Hello
World!"
foo = function(...) {
s = paste0("\"", ..., "\"")
cat(s)
}
foo("Hello \n World!")
#"Hello
# World!"
只需修改猫-哦,互联网!那么,我是否可以认为,一般的答案是“最强大的打印功能是cat
,您可以做任何需要做的事来事先修改字符串”?@J.Mini,我认为它们在接受什么输入、返回什么值等方面都略有不同。根据需要,其中一个可能比另一个更适合。似乎您想要类似于猫的东西。这很有趣。我的R版本不是很过时,但是你的?cat
与我的不匹配。它一定有更新。无论如何,我是否可以认为,一般的答案是“最强大的打印功能是cat
。在将字符串传递给cat
”之前,请执行任何需要修改的操作?@J.Mini您的R版本是什么。我使用了R版本4.0.3
。所有答案都使用双引号进行某种字符串插值,即paste
或glue
等。在这里,dQuote
也在进行同样的操作thing@J.Mini我使用了dQuote
,因为它会自动创建那些双引号,而无需创建另一个函数wrapper3.6.3。我现在正在更新它。每个人都在使用cat
而不是print
这一事实是我发表这一评论的主要原因-我可以看到一个模式形成。@J.Miniprint
不会评估\n
修订版,谢谢!