当我使用quantmod从雅虎金融下载数据时,我遇到了问题。在我想要删除的列名后总是有一个后缀号。
我的代码如下:
library("quantmod")
library("PerformanceAnalytics")
library("FinancialInstrument")
myenv <- new.env()
tickers <- c("LNKD", "FB", "HP", "AAPL", "MSFT", "GOOG", "EBAY")
getSymbols(tickers, env = myenv)
monthly.Return <- do.call(merge, c(eapply(myenv, monthlyReturn), all=FALSE))
names(monthly.Return)[1:10] <- paste(tickers, 1:10, sep="")
monthly.Return产出:
LNKD1 FB2 HP3 AAPL4 MSFT5 GOOG6 EBAY7
2012-05-31 -0.117267081 -0.044978166 -0.0446123842 -0.0107024213 -0.118505546 -0.039662726 -0.11387736
2012-06-29 0.072333240 0.051668953 0.0719571319 0.0108528205 -0.040176600 -0.001360052 0.10582726
2012-07-31 0.039632546 0.045217391 0.0545108308 0.0458219178 0.069457222 0.091195890 -0.03406418
................................我想删除每个列名后面的数字。
发布于 2013-11-22 03:30:34
> names(monthly.Return)
[1] "LNKD1" "FB2" "HP3" "AAPL4" "MSFT5" "GOOG6" "EBAY7"
> names(monthly.Return) <- gsub("[[:digit:]]", "", names(monthly.Return) )
> names(monthly.Return)
[1] "LNKD" "FB" "HP" "AAPL" "MSFT" "GOOG" "EBAY"发布于 2013-11-22 03:00:11
试一试
x
## [1] "LNKD1" "FB2" "HP3" "AAPL4" "MSFT5" "GOOG6" "EBAY7" "LNKD8" "FB9" "HP10"
gsub("(.*)[0-9]+?", "\\1", x)
## [1] "LNKD" "FB" "HP" "AAPL" "MSFT" "GOOG" "EBAY" "LNKD" "FB" "HP" 发布于 2020-09-22 17:27:39
这将移除尾随/结束号,但不移除中间的数字。
names(monthly.Return)
names(monthly.Return) <- gsub("[0-9]$", "", names(monthly.Return) )
names(monthly.Return)如果你最后有一个以上的数字,那么:
names(monthly.Return)
names(monthly.Return) <- gsub("[0-9]$|[0-9][0-9]$", "", names(monthly.Return) )
names(monthly.Return)https://stackoverflow.com/questions/20136159
复制相似问题