有没有办法在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中将字符串分成两行? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

正则表达式匹配在任意位置连字符并分成两行的特定单词

在R中将字符串转换为二进制向量

需要在java中将字符串分成两部分

java - 如何在java中将字符串元素拆分为不相交的组?

有没有办法在 C++ 中将字符串和整数相乘? [复制]

将同一个单词中混合大小写分成两行