我对R中映射的最佳实现有疑问。例如,我需要使用这些模型处理10个模型和300个股票。每个库存都由一个符号表示,需要由其中一个模型处理。我想有一张地图可以让我得到一个符号的模型。例如,IBM,AAPL,MSFT由M1模型处理。通过M2等F,GM,CAT ......有没有办法做类似的事情 型号= XXX(符号)
模型很大,我不希望有一个包含我的10个模型的290个副本的列表,所以我需要通过引用获得某种形式的访问,只有10个模型实际分配。
答案 0 :(得分:0)
您可以使用您的股票和相关的型号创建数据框:
mapping <- data.frame(stock=c("IBM", "AAPL", "MSFT", "F", "GM", "CAT"),
model=c(1, 1, 1, 2, 2, 2))
您可以使用标准索引查找给定库存的型号:
mapping$model[mapping$stock == "AAPL"]
# [1] 1
稍微简单的语法是使用命名向量:
mapping2 <- c(IBM=1, AAPL=1, MSFT=1, F=2, GM=2, CAT=2)
mapping2["AAPL"]
# AAPL
# 1
如果您有一个名为mods
的模型列表,您可以使用此索引查找适合您的股票的模型:
mods[[mapping$model[mapping$stock == "AAPL"]]]
mods[[mapping2["AAPL"]]