我想對變量x
和length(x)>12000
進行排序。當我運行對變量的值進行排序而不顯示數據
sort(x)
來自RStudio,r
控制檯開始顯示結果。有沒有一種方法可以在不顯示排序數據的情況下進行排序?
我想對變量x
和length(x)>12000
進行排序。當我運行對變量的值進行排序而不顯示數據
sort(x)
來自RStudio,r
控制檯開始顯示結果。有沒有一種方法可以在不顯示排序數據的情況下進行排序?
我瞭解到,我可以簡單地將排序數據存儲在一個新變量中;如y <- sort(x)
。使用invisible(sort(x))
也是另一種選擇。
除了後者沒有做任何有用的事情,因爲'sort(x)'不會修改'x'。 –
我認爲這裏有一個更廣泛的問題,那就是R REPL。你看到你在R解釋器中的Read-Eval-Print Loop中。它所做的是:
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
小號x
而F2只用x的副作用。但是,如果您要做identical(f1(5), f2(5))
,您將獲得TRUE
。
希望這會有所幫助。 :)
這不完全正確。 'f2'返回最後一條語句的值,但是這樣做是不可見的。試試這個:'f2(5); .Last.value'來查看該值是否可用。 –
我同意。這就是爲什麼我在那裏加上'identical(f1(5),f2(5))'的原因。 – asb
爲什麼不把它作爲一個新的變量存儲? 'y < - sort(x)'? – A5C1D2H2I1M1N2O1R2T1
你可以使用'invisible(sort(x))',但我不明白爲什麼,除非你的函數通過引用更新值。 – Arun
@AnandaMahto我是新手,我現在明白了。 – Duna