删除 r 中字符向量的一部分

Remove part of a character vector in r

我是运行以下

# rm(list=ls(all=TRUE))  #It's more courteous to make that as a comment.

library(quantmod)
symbols <- c("HOG", "GE", "GOOG")

for (i in 1:length(symbols)) {   
  getFinancials(symbols[i], src="yahoo", auto.assign = TRUE)
}

下载 symbols 中 3 家公司的余额 sheet 信息。但是,当我调用 getFinancials 函数时,它会在列表名称中添加一个内容。例如 GOOG.f。我有两个问题。

问题 1:如何先从列表中删除 .f 部分。 问题 2:如果我想保留 .f(因为删除它会导致冲突,如果我想使用 getSymbols 我如何写一个新的 symbols 字符值,但除了 .f

例如symbols.f <- c("HOC.f", "GOOG.f", "GE.f")

您可以使用 paste0 添加 .f 并使用 sub 将其删除。

symbols <- c("HOG", "GE", "GOOG")

( symbols.f <- paste0(symbols, ".f") )
[1] "HOG.f"   "GE.f" "GOOG.f"

sub("\.f","", symbols.f)  #Periods (regex metacharacter) need to be double escaped.
[1] "HOC"  "GOOG" "GE"