2016-01-17 47 views
0

我想在通過R控制檯顯示數字矢量時縮寫數字矢量。我已經嘗試過功能?abbreviate,但它不是我想要的。事實上,我希望整個向量被縮寫,而不是向量的每個元素。此外,我想通過...在突破位置,以表明它繼續。我怎樣才能做到這一點?在控制檯中顯示數字矢量時縮寫數字矢量

x = 1:100 
x 1, 2, 3, 4, 5, 6 ... 

回答

5

嘗試str()

x <- 1:100 
str(x, vec.len = 2.5, give.head = FALSE) 
# 1 2 3 4 5 6 ... 

但大衛·阿倫伯格對cat()提出了很好的建議。這是一個讓你更精確地調整長度的功能。

f <- function(x, n) cat(x[1:n], "...") 
f(x, 5) 
# 1 2 3 4 5 ... 
f(x, 9) 
# 1 2 3 4 5 6 7 8 9 ... 

更新:在回答你關於值之前把輸入的文本名稱評論,你可以按如下調整功能。

f <- function(x, n) { 
    cat(substitute(x), head(x, n), if(n < length(x)) "...") 
} 

stuff <- 1:100 
f(stuff, 6) 
# stuff 1 2 3 4 5 6 ... 
f(stuff, 12) 
# stuff 1 2 3 4 5 6 7 8 9 10 11 12 ... 
+2

一個不錯的一個,但我不知道,如果只是'貓(X [1:6],「...」)'應該足夠 –

+0

是啊,這是一個更好的 –

+0

我從來沒有見過使用對於'give.head',在 – rawr