简单的问题,但我无法找到答案。
我有一个载体
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)
}
}
答案 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)