我想通过R控制台显示数字向量时缩写。我已经尝试了函数?abbreviate
,但它不是我想要的东西。实际上我希望缩写整个矢量,而不是矢量的每个元素。另外,我想在破坏位置传递...
,以表明它继续。我该怎么做?
x = 1:100
x 1, 2, 3, 4, 5, 6 ...
答案 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 ...