R:获取向量中所有元素的索引?

时间:2018-03-22 20:58:42

标签: r indexing

简单的问题,但我无法找到答案。

我有一个载体

a<-c(5,6,7)

如何获取向量中所有元素的索引?

我需要回来

1  #"a"
2  #"b"
3  #"c"

c(1,2,3)

如果我运行seq_along(a),它会让我回到(1,1,1)而不是(1,2,3)

for (i in seq_along(a)) {
  print(seq_along(a[[i]])) 
}

[1] 1
[1] 1
[1] 1

原因是我需要为每个图创建一个唯一的名称。我有大约100个地块,说明了100个地点。地点名称太长并且包含特殊字符,因此我无法使用它们来命名我的输出图。我想使用索引值替换每个保存的图的名称。

我需要修改的功能:

lineCumRateGraph <- function(tab, na.rm = TRUE, ...) {

  # Create list of locations
  type_list <-unique(tab$uniqueLoc)

  # Create a for loop to produce ggplot plots
  for (i in seq_along(type_list)) {

    # create a plot for each loc in df
    plot<-

      ggplot(subset(tab, tab$uniqueLoc == type_list[i]),
             aes(x = factor(gridcode), 
                 y = cumRate) +
      geom_line(aes(linetype = distance),
                size = 1) +
      ggtitle(type_list[i])

    windows(width = 4, height = 3.5)
    print(plot)
    ggsave(plot,
           width = 3.5, height = 3.5,
           file = paste(outPath,
                        "lineCumRate",
                       # type_list[i], # I need to replace this one by index value
                        ".png",
                        sep=''),
           dpi = 300)
  }
}

2 个答案:

答案 0 :(得分:4)

这是seq_along函数提供的目的:

seq_along(a)
[1] 1 2 3
> cbind( seq_along(a), a)
         a  
[1,] "1" "a"
[2,] "2" "b"
[3,] "3" "c"
>  data.frame( sq = seq_along(a), a)
  sq a
1  1 a
2  2 b
3  3 c

答案 1 :(得分:1)

如果你喜欢初级的东西,你可以尝试:

a<-c(5,6,7)
b <- 1:length(a)