抑制R输出中的行号/索引号

抑制R输出中的行号/索引号,r,console,rstudio,R,Console,Rstudio,我能否系统地抑制控制台中R输出中输出行中第一个元素的索引 我正在寻找一个选项来美化输出,而不必键入任何额外内容。我想,如果这样的壮举是可能的,它将被设置为.renviron文件(或类似文件)中的一个选项。可以接受特定的回答。如果我忽略了设置中的某些明显内容(我希望该选项位于首选项-->代码-->显示中),请道歉 当前R控制台和RStudio控制台显示: 1+1 [1] 2 我想看看: 1+1 2 我知道我可以通过cat(1+1)获得上述信息,但我要寻找的是显示样式的系统性变化。类似于典型的P

我能否系统地抑制控制台中
R
输出中输出行中第一个元素的索引

我正在寻找一个选项来美化输出,而不必键入任何额外内容。我想,如果这样的壮举是可能的,它将被设置为
.renviron
文件(或类似文件)中的一个选项。可以接受特定的回答。如果我忽略了设置中的某些明显内容(我希望该选项位于
首选项-->代码-->显示
中),请道歉

当前
R
控制台和
RStudio
控制台显示:

1+1
[1] 2
我想看看:

1+1
2
我知道我可以通过
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)当我将粘贴输出复制到课堂讲稿中时,这些行号会干扰清晰度,并使新手感到困惑

我还没有找到这个问题的答案,这是令人惊讶的,所以如果我错过了,请让我知道。下面的问题是相关的,但不是重复的 .有没有我遗漏的副本


编辑正如Adiel Loinger在评论部分指出的,这些不是我所说的“行号”,而是“控制台中打印的行的第一个元素的索引”。谢谢您的更正。我已尝试相应地编辑我的问题。

我认为唯一的方法是修改源代码。R是开源的,所以这不是不可能的,但并不容易

更改特定类别对象的打印格式更容易。例如,如果您不喜欢
lm
对象的打印方式,您可以创建自己的
print.lm
方法来自己执行:

print.lm <- function (x, ...) 
{
    cat("My new version!")
}
这不适用于
1+1
,因为出于效率原因,R始终使用打印方法的内部版本进行自动打印


顺便说一句,打印的索引确实有一个用途:如果您打印一个长向量,并且想知道某个特定元素的索引是什么,那么您只需要从行的开头开始计数,而不是从向量的开头开始计数就可以找到它。

您可以通过将答案转换为数据帧来处理索引和行名。这不是完美的,但是不太难,取决于您的应用程序,可能需要改进。功能如下

具有稍微令人讨厌的索引的基本函数:

  paste0("The answer is ", foo, "bar")
}

my_fun("foo")
[1] "The answer is foobar"
数据帧的改进:

注意:对于具有多行的数据帧,而不仅仅是df,请使用
print.data.frame(df,row.names=FALSE)


my_funner The[1]不是行号。它是打印行中第一个元素的索引。在
1+1
示例中,只有一个元素。@AdielLoinger,感谢您的精确性。不过,我还是想抑制它们。我已经编辑了我的问题!感谢用户2554330。我会在接受之前稍等片刻,看看是否有人有其他建议更接近我的目的,但根据你所说的判断,这是不可能的。感谢你指出数字的一个可能用途:我从来没有过这样的情况,我会计算索引,更喜欢依赖命名向量,所以我不会错过一个功能。
  paste0("The answer is ", foo, "bar")
}

my_fun("foo")
[1] "The answer is foobar"
my_funner <- function(foo){
  df <- data.frame("The_answer_is" = paste0(foo, "bar"), row.names = "")
  df
}

my_funner("foo")
 The_answer_is
        foobar
my_funnest <- function(foo){
  df <- data.frame("Sorry_about" = "The_answer_is", "the_col_names" = paste0(foo, "bar"), row.names = "")
  df
}
my_funnest("foo")
   Sorry_about the_col_names
 The_answer_is        foobar
my_most_funnest <- function(foo){
  df <- data.frame("Sorry_about_the_col_names" = paste0("The answer is ", foo, "bar"), row.names = "")
  df
}

my_most_funnest("foo")
 Sorry_about_the_col_names
      The answer is foobar