有没有办法在R中将字符串分成两行? [关闭]
Posted
技术标签:
【中文标题】有没有办法在R中将字符串分成两行? [关闭]【英文标题】:Is there any way to split a string into two lines in R? [closed] 【发布时间】:2022-01-14 06:18:18 【问题描述】:我想在 R 中将一个字符串分成 2 行。我找到了 cat 函数,但它只打印到屏幕上。我需要将输出分配给一个变量。 例如,如果我的字符串是“Line1\nLine2”,我需要如下输出:
Seperate to two lines
【问题讨论】:
您将此处的输出与它在变量中的存储方式混淆了。您的变量中提到的字符串格式是正确的。 如果我们使用 cat 函数( cat("Line1\nLine2, sep="\n"),我们可以将输出打印成两行。我希望将输出分配给一个变量.由于cat函数返回NULL,我不能这样做。有没有替代方法? 我不确定您要做什么。也许更多的上下文会有所帮助。 输出是输出,将数据存储在变量中不是输出,也不能存储输出。您可以输出任何变量。所以更具体地说,我假设你想在某个地方实际输出你的变量。让我们知道在哪里。因为输出将确定它如何处理换行符。 我不知道“线条”是什么意思。变量并没有真正的“线”。它们可以在向量中的不同位置(例如,c("hello", "world"))或列表中的不同位置(例如,list("hello", "world"),或矩阵中的不同行(例如, 矩阵(c("hello", "world"), nrow=2). 【参考方案1】:如果您尝试在 R 控制台上显示 x(如下所示)为两行,请使用以下任一行:
x <- "Line1\nLine2"
writeLines(x)
## Line1
## Line2
cat(x, "\n")
## Line1
## Line2
或者如果您尝试将其拆分为具有两个组件的字符向量,则使用其中之一:
strsplit(x, "\n")[[1]]
## [1] "Line1" "Line2"
readLines(textConnection(x))
## [1] "Line1" "Line2"
scan(text = x, what = "", quiet = TRUE)
## [1] "Line1" "Line2"
或者,如果您只想要第一部分或第二部分,那么如果 y 是最后三个部分中的任何一个,则 y[1] 和 y[2] 或以下任何一个:
sub("\n.*", "", x)
## [1] "Line1"
sub(".*\n", "", x)
## [1] "Line2"
【讨论】:
感谢您的回答。有没有办法将 cat 输出分配给对象? 没有。 cat 只是将给出的字符串呈现到控制台上。如果要创建由 2 元素向量组成的新对象,请使用拆分选项。一定要区分对象本身及其在显示时的外观。以上是关于有没有办法在R中将字符串分成两行? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章