我想通过R控制台显示数字向量时缩写.我已经尝试了这个功能?abbreviate,但它不是我想要的东西.实际上我希望缩写整个矢量,而不是矢量的每个元素.另外,我想通过...破坏位置,以表明它继续.我该怎么做?
x = 1:100
x 1, 2, 3, 4, 5, 6 ...
Run Code Online (Sandbox Code Playgroud)
试试str().
x <- 1:100
str(x, vec.len = 2.5, give.head = FALSE)
# 1 2 3 4 5 6 ...
Run Code Online (Sandbox Code Playgroud)
但大卫阿伦堡提出了一个很好的建议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 ...
Run Code Online (Sandbox Code Playgroud)
更新: 响应您关于在值之前输入输入文本名称的注释,您可以按如下方式调整功能.
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 ...
Run Code Online (Sandbox Code Playgroud)