我正在处理一些字符向量,每个元素的大小从4到855不等。 让我们假设这种向量的名称是y。当我键入" y"时,R打印出整个矢量,问题是每个元素的行数相同。因此,如果需要8行来打印855个字符的元素,那么R也会给只有4个字符的元素赋予8行,这样就显示了很多不必要的行
我想删除这些不必要的行。例如,我想要
[1] "a"
[2]"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
打印为
[1] "a"
[2]"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
当我输入此向量的名称时。
如何更改此设置?
答案 0 :(得分:2)
请注意,您使用额外行添加到打印输出中描述的行为不是通用的。例如,Mac上的R控制台(3.1.2)不会打印您描述的额外行,但是当在终端上运行完全相同的R版本时,我会获得额外的行。
您可以使用cat
执行此操作,循环遍历矢量并根据需要构建输出:
> for (i in seq(y)) cat(paste0("[", i, "] \"", y[i], "\"\n"))
[1] "aaaa"
[2] "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
[3] "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
[4] "aa"
答案 1 :(得分:1)
这是一个可重复的例子:
y<-c("aaaa", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "aa")
y
在控制台中返回时,您会注意到前2行在它们下方有间隙。
来自?format
的帮助详细说明了正在发生的事情:
“字符向量(以及通过其方法转换为字符向量的对象)的对齐是在显示宽度(参见nchar)上完成的,采用双宽字符和特殊字符的呈现(作为转义序列,包括转义反斜杠但不是双引号:请参阅print.default)。因此宽度由print(quote = FALSE)显示,而不是由cat显示。字符串用空格填充到最宽的显示宽度。(如果是na.encode = FALSE缺少的字符串不包含在宽度计算中,也不进行编码。)“
我认为这里的解决方案是使用cat
进行打印。
查看每个元素如何填充空白字符的简单方法是执行以下操作:
format(y, trim=T)