我有一个名为dat
的数据框。它有一些前缀为vix
的列。
例如
Date, VO, vix2, vix3, vix4, ... vix24, other columns
在这种情况下,
start = which(names(dat) == "vix2")
end = which(names(dat) == "vix24")
但问题是,我不知道vix
之后的号码安排。在这种情况下,有没有办法返回start
和end
?
答案 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