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