首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当我在R中键入字符矢量的名称时,如何在没有不必要行的情况下打印?

当我在R中键入字符矢量的名称时,如何在没有不必要行的情况下打印?
EN

Stack Overflow用户
提问于 2015-06-13 10:41:38
回答 2查看 89关注 0票数 0

我正在处理一些字符向量,每个元素的大小从4到855不等。假设这样的向量的名称是y,当我输入"y“时,R打印出整个向量,问题是每个元素都有相同的行数。因此,如果打印855个字符的元素需要8行,那么R也给只有4个字符的元素8行,并且这种方式显示了许多不必要的行

我想删除这些不必要的行。例如,我希望

代码语言:javascript
运行
复制
[1] "a"


[2]"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"

要打印为

代码语言:javascript
运行
复制
[1] "a"
[2]"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"

当我输入此向量的名称时。

如何更改此设置?

EN

回答 2

Stack Overflow用户

发布于 2015-06-13 11:05:00

请注意,您所描述的在打印输出中添加额外行的行为并不通用。例如,我在Mac (3.1.2)上的R控制台没有打印您所描述的额外的行,但是当我在终端上运行完全相同的R版本时,我得到了额外的行。

您可以使用cat执行此操作,循环遍历向量并根据需要构造输出:

代码语言:javascript
运行
复制
> for (i in seq(y)) cat(paste0("[", i, "] \"", y[i], "\"\n"))
[1] "aaaa"
[2] "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
[3] "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
[4] "aa"
票数 2
EN

Stack Overflow用户

发布于 2015-06-13 11:01:40

下面是一个可重复使用的示例:

代码语言:javascript
运行
复制
y<-c("aaaa", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "aa")
y

您将注意到,在控制台中返回时,前两行下面有间隙。

来自?format的帮助详细说明了发生了什么:

字符向量(以及通过其方法转换为字符向量的对象)的对齐是在显示宽度上完成的(请参阅nchar),其中考虑了双宽字符和特殊字符的呈现(作为转义序列,包括转义反斜杠,但不包括双引号:参见print.default)。因此,宽度由print显示(引号= FALSE),而不是由cat显示。字符串将用空格填充到最宽的显示宽度。(如果na.encode = FALSE,则缺少的字符串不包括在宽度计算中,也不编码。)

我认为这里的解决方案是使用cat进行打印。

查看如何用空白字符填充每个元素的一种简单方法是执行以下操作:

代码语言:javascript
运行
复制
format(y, trim=T)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30814574

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档