如何在使用函数paste()或连接R中字符串的任何函数时插入新行?
这个主题有很多网页,但没有一个明确回答或提供有效的解决方案。我确切地说我不想使用函数cat,我需要使用字符串。 以下是我的所有尝试(来自不同论坛的所有建议),它们都失败了......
msg <- "==================================================\n"
msg <- paste(msg, "Var:")
print(msg)
输出:
[1]“=========================================== ======= \ n Var:“
msg <- "==================================================\n"
msg <- paste0(msg, "Var:")
print(msg)
输出:
[1]“=========================================== ======= \ NVAR:“
msg <- "=================================================="
msg <- paste(msg, "Var:", sep = "\n")
print(msg)
输出:
[1]“=========================================== ======= \ NVAR:“
msg <- sprintf("==================================================\n")
msg <- paste(msg, "Var:")
print(msg)
输出:
[1]“=========================================== ======= \ NVAR:“
我相信我已尽力而为......如果你有想法?!
答案 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:"