我可以系统地抑制控制台中输出中的输出行中第一个元素的索引吗?R
我正在寻找prettify输出的选项,而无需输入任何额外的内容。我想如果这样的壮举是可能的,它将被设置为文件.renviron(或类似文件)中的一个选项。一个RStudio具体的答案是可以接受的。如果我忽略了设置中明显的一些内容,我深表歉意(我本来希望该选项位于Preferences --> Code --> Display.
目前R控制台和RStudio控制台显示:
1+1
[1] 2
Run Code Online (Sandbox Code Playgroud)
我想看看:
1+1
2
Run Code Online (Sandbox Code Playgroud)
我知道我可以通过 获得上述内容cat(1+1),但我正在寻找的是显示样式的系统更改。类似于典型的Python输出(打开终端,输入Python后跟1+1。我想要那个)
编辑:另一个例子。在 中RStudio,如果我定义x=1:5,它看起来就像int [1:5] 1 2 3 4 5在环境中一样:这是信息丰富的,我不介意。但在R控制台中,它看起来像[1] 1 2 3 4 5,我没有找到任何信息,特别是当有多行时。
我个人已经习惯了这些数字,就像我想象的每个人一样,但这并不意味着它们是正确的:(1)它们没有任何作用:如果你加宽控制台,行会变宽并且行号会改变(如果它们标记了 80 个字符的宽度,好吧,也许它们会起到一定的作用),(2)当我将输出复制粘贴到讲义中时,这些行号会干扰清晰度并使新手感到困惑。
我还没有找到这个问题的答案,这很令人惊讶,所以如果我错过了,请告诉我。以下问题相关但不重复 /sf/ask/229035761/。我是否错过了重复的内容?
编辑正如 Adiel Loinger 在评论部分所指出的,这些不是我所说的“行号”,而是“在控制台中打印的行的第一个元素的索引”。感谢您的指正。我尝试相应地编辑我的问题。
我相信唯一的方法就是修改源代码。R 是开源的,所以这并非不可能,但并不容易。
更改特定对象类别的打印格式更加容易。例如,如果您不喜欢lm对象打印的方式,您可以创建自己的print.lm方法来自己完成:
print.lm <- function (x, ...)
{
cat("My new version!")
}
Run Code Online (Sandbox Code Playgroud)
然后
> lm(rnorm(10) ~ I(1:10))
My new version!
Run Code Online (Sandbox Code Playgroud)
这对于诸如 之类的东西不起作用1+1,因为出于效率原因,R 始终使用 print 方法的内部版本进行自动打印。
顺便说一句,打印的索引确实有一个目的:如果您打印一个长向量并想知道某个特定元素的索引是什么,您只需要从行的开头开始计数,而不是从向量的开头开始计数,找到它。
| 归档时间: |
|
| 查看次数: |
3932 次 |
| 最近记录: |