在控制台中显示数字向量时缩写

时间:2016-01-17 00:20:49

标签: r

我想通过R控制台显示数字向量时缩写。我已经尝试了函数?abbreviate,但它不是我想要的东西。实际上我希望缩写整个矢量,而不是矢量的每个元素。另外,我想在破坏位置传递...,以表明它继续。我该怎么做?

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

1 个答案:

答案 0 :(得分:5)

尝试str()

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

但David Arenburg对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 ...