返回列名称的列索引条件

时间:2015-05-15 10:10:55

标签: r

我有一个名为dat的数据框。它有一些前缀为vix的列。

例如

Date, VO, vix2, vix3, vix4, ... vix24, other columns

在这种情况下,

start = which(names(dat) == "vix2")

end = which(names(dat) == "vix24")

但问题是,我不知道vix之后的号码安排。在这种情况下,有没有办法返回startend

1 个答案:

答案 0 :(得分:2)

你可以尝试

 range(grep('vix', names(dat)))

假设列不连续

  v1 <- c('Date',  'vix2',  'v0', 'vix3', 'V5', 'vix4')
  range(grep('vix', v1))
  #[1] 2 6

将使用'vix'给出第一个和最后一个条目,但是如果您要为'vix'列的数据集进行子集化,则不需要range,只需要grep足够

  grep('vix', v1)
 #[1] 2 4 6