Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否有一个特定的R函数可以最大程度地控制打印字符串的格式?_R_Println - Fatal编程技术网

是否有一个特定的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.Mini
print
不会评估
\n
修订版,谢谢!