R - paste()函数中的新行

Rio*_*Rio 13 newline r line paste

在使用函数paste()或在R中连接字符串的任何函数时,我们如何插入新行?

关于此主题的网页很多,但没有一个明确回答或提供有效的解决方案.我确切地说我不想使用函数cat,我需要使用字符串.以下是我的所有尝试(来自不同论坛的所有建议),它们都失败了......

第一次尝试:粘贴()

msg <- "==================================================\n"
msg <- paste(msg, "Var:")
print(msg)
Run Code Online (Sandbox Code Playgroud)

输出:

[1]"============================================== ==== \n Var:"

第二次尝试:paste0()

msg <- "==================================================\n"
msg <- paste0(msg, "Var:")
print(msg)
Run Code Online (Sandbox Code Playgroud)

输出:

[1]"============================================== ====\NVAR:"

第三次尝试:sep

msg <- "=================================================="
msg <- paste(msg, "Var:", sep = "\n")
print(msg)
Run Code Online (Sandbox Code Playgroud)

输出:

[1]"============================================== ====\NVAR:"

第四次尝试:sprintf

msg <- sprintf("==================================================\n")
msg <- paste(msg, "Var:")
print(msg)
Run Code Online (Sandbox Code Playgroud)

输出:

[1]"============================================== ====\NVAR:"

我相信我已尽力而为......如果你有想法?!

Ric*_*ven 13

你可以试试 strsplit

msg <- "==================================================\n"
msg2 <- paste(msg, "Var:")
strsplit(msg2, "\n")[[1]]
# [1] "=================================================="
# [2] " Var:" 
Run Code Online (Sandbox Code Playgroud)

noquote如果您不需要引号,也可以使用它.

noquote(strsplit(msg2, "\n")[[1]])
# [1] ==================================================
# [2]  Var: 
Run Code Online (Sandbox Code Playgroud)

这实际上产生相同的结果,如果你是使用printquote = FALSE

您还可以定义自己的打印方法

print.myClass <- function(x, ...)  strsplit(x, "\n")[[1]]
class(msg2) <- "myClass"
print(msg2)
# [1] "=================================================="
# [2] " Var:"     
Run Code Online (Sandbox Code Playgroud)

  • 那么你想要什么? (2认同)