在不显示数据的情况下对变量的值进行排序

时间:2013-07-16 11:48:25

标签: r

我想用[{1}}对变量x进行排序。我跑的时候

length(x)>12000
来自RStudio的

sort(x) 控制台开始显示结果。有没有一种方法可以排序而不显示排序数据?

2 个答案:

答案 0 :(得分:3)

我认为这里存在一个更广泛的问题,那就是R REPL。您看到您在R解释器中的Read-Eval-Print循环中。它的作用是:

  • 读取您提供的输入:sort(x)
  • 评估输入:找到已排序的向量。
  • 打印输出。
  • 循环结束。

因此,当您在解释器中创建有效的object时,无论您是否明确地调用print,都会打印出来。

> x <- 5
> x
[1] 5
> print(x)
[1] 5

唯一没有打印的是赋值,因为技术上,这是副作用。因此,第一个陈述x <- 5没有说什么。

这是一个有趣的玩具:

> f1 <- function (x) x
> f2 <- function (x) y <- x

> f1(5)
[1] 5

> f2(5) # Nothing

细微差别在于f1明确return s x而f2仅使用x作副作用。但是,如果您执行identical(f1(5), f2(5)),则会获得TRUE

希望这会有所帮助。 :)

答案 1 :(得分:1)

我了解到我可以简单地将已排序的数据存储在一个新变量中;例如y <- sort(x)。使用invisible(sort(x))也是另一种选择。