将值映射到R中的对象

时间:2015-02-11 06:59:51

标签: r

我对R中映射的最佳实现有疑问。例如,我需要使用这些模型处理10个模型和300个股票。每个库存都由一个符号表示,需要由其中一个模型处理。我想有一张地图可以让我得到一个符号的模型。例如,IBM,AAPL,MSFT由M1模型处理。通过M2等F,GM,CAT ......有没有办法做类似的事情 型号= XXX(符号)

模型很大,我不希望有一个包含我的10个模型的290个副本的列表,所以我需要通过引用获得某种形式的访问,只有10个模型实际分配。

1 个答案:

答案 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"]]