假设我创建一个简单的向量:
x <- seq(1, 50, by = 5)
然后我可能要显示其内容以查看哪个项目是第七个:
print(x)
[1] 1 6 11 16 21 26 31 36 41 46
是否有一种简单的方法来显示内容,以便对每个项目进行编号?
[1] 1, [2] 6, [3] 11, etc.
答案 0 :(得分:1)
一个简单的选择是将计数器与原始矢量旁边的列绑定:
cbind(1:length(x), x)
答案 1 :(得分:1)
我假设您正在询问如何修改print
以包括向量x
的每个元素的索引。
有可能
x <- seq(1, 50, by = 5)
cat(sapply(seq_along(x), function(i) (sprintf("[%i] %i", i, x[i]))), "\n")
#[1] 1 [2] 6 [3] 11 [4] 16 [5] 21 [6] 26 [7] 31 [8] 36 [9] 41 [10] 46
或者您可以定义一个自定义的my.print
函数,该函数很好地将第nmax
个条目的行包装为长向量
my.print <- function(x, nmax = 6) {
os <- 0
while (length(x) > 0) {
cat(sapply(seq_along(x[1:min(length(x), 6)]), function(i)
sprintf("[%i] %i", i + os, x[i])), "\n")
x <- x[-(1:min(length(x), nmax))]
os <- os + nmax
}}
my.print(x)
#[1] 1 [2] 6 [3] 11 [4] 16 [5] 21 [6] 26
#[7] 31 [8] 36 [9] 41 [10] 46
答案 2 :(得分:1)
一种优雅的方法可能是使用?names
。
x <- seq(1, 50, by = 5)
names(x) <- seq_along(x)
x
1 2 3 4 5 6 7 8 9 10
1 6 11 16 21 26 31 36 41 46