R - paste()函数中的新行

时间:2014-09-24 16:50:29

标签: r line newline paste

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

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

第一次尝试:粘贴()

msg <- "==================================================\n"
msg <- paste(msg, "Var:")
print(msg)

输出:

  

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

第二次尝试:paste0()

msg <- "==================================================\n"
msg <- paste0(msg, "Var:")
print(msg)

输出:

  

[1]“=========================================== ======= \ NVAR:“

第三次尝试:sep

msg <- "=================================================="
msg <- paste(msg, "Var:", sep = "\n")
print(msg)

输出:

  

[1]“=========================================== ======= \ NVAR:“

第四次尝试:sprintf

msg <- sprintf("==================================================\n")
msg <- paste(msg, "Var:")
print(msg)

输出:

  

[1]“=========================================== ======= \ NVAR:“

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

1 个答案:

答案 0 :(得分:12)

您可以尝试strsplit

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

如果您不想报价,也可以与noquote一起使用。

noquote(strsplit(msg2, "\n")[[1]])
# [1] ==================================================
# [2]  Var: 

这会产生与使用print

quote = FALSE几乎相同的结果

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

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