以编程方式在 R 中查找股票代码

2024-03-09

我有一个包含公司名称的数据字段,例如

company <- c("Microsoft", "Apple", "Cloudera", "Ford")
> company

  Company
1 Microsoft
2 Apple
3 Cloudera
4 Ford

等等。

套餐tm.plugin.webmining允许您从 Yahoo! 查询数据基于股票代码的财务:

require(tm.plugin.webmining)
results <- WebCorpus(YahooFinanceSource("MSFT")) 

我错过了中间的步骤。如何根据公司名称以编程方式查询票据符号?


I couldn't manage to do this with the tm.plugin.webmining package, but I came up with a rough solution - pulling & parsing data from this web file: ftp://ftp.nasdaqtrader.com/SymbolDirectory/nasdaqlisted.txt ftp://ftp.nasdaqtrader.com/SymbolDirectory/nasdaqlisted.txt. I say rough because for some reason my calls with httr::content(httr::GET(...)) don't work every time - I think it has to do with the type of web address (ftp://) but I don't do that much web scraping so I can't really explain this. It seemed to work better on my Linux than my Mac, but that could be irrelevant. Regardless, here's what I got: Thanks to @thelatemail's comment, this seems to be working much smoother:

library(quantmod) ## optional
symbolData <- read.csv(
  "ftp://ftp.nasdaqtrader.com/SymbolDirectory/nasdaqlisted.txt",
  sep="|")
##
> head(symbolData,10)
   Symbol                                                   Security.Name Market.Category Test.Issue Financial.Status Round.Lot.Size
1    AAIT iShares MSCI All Country Asia Information Technology Index Fund               G          N                N            100
2     AAL                    American Airlines Group, Inc. - Common Stock               Q          N                N            100
3    AAME                    Atlantic American Corporation - Common Stock               G          N                N            100
4    AAOI                    Applied Optoelectronics, Inc. - Common Stock               G          N                N            100
5    AAON                                       AAON, Inc. - Common Stock               Q          N                N            100
6    AAPL                                       Apple Inc. - Common Stock               Q          N                N            100
7    AAVL                  Avalanche Biotechnologies, Inc. - Common Stock               G          N                N            100
8    AAWW                     Atlas Air Worldwide Holdings - Common Stock               Q          N                N            100
9    AAXJ               iShares MSCI All Country Asia ex Japan Index Fund               G          N                N            100
10   ABAC                        Aoxin Tianli Group, Inc. - Common Shares               S          N                N            100

Edit:根据 @GSee 的建议,获取源数据的(大概)更可靠的方法是使用stockSymbols()包中的函数TTR:

> symbolData2 <- stockSymbols(exchange="NASDAQ")
Fetching NASDAQ symbols...
> ##
> head(symbolData2)
  Symbol                                                           Name LastSale    MarketCap IPOyear         Sector
1   AAIT iShares MSCI All Country Asia Information Technology Index Fun   34.556      6911200      NA           <NA>
2    AAL                                  American Airlines Group, Inc.   40.500  29164164453      NA Transportation
3   AAME                                  Atlantic American Corporation    4.020     83238028      NA        Finance
4   AAOI                                  Applied Optoelectronics, Inc.   20.510    303653114    2013     Technology
5   AAON                                                     AAON, Inc.   18.420   1013324613      NA  Capital Goods
6   AAPL                                                     Apple Inc.  103.300 618546661100    1980     Technology
                         Industry Exchange
1                            <NA>   NASDAQ
2   Air Freight/Delivery Services   NASDAQ
3                  Life Insurance   NASDAQ
4                  Semiconductors   NASDAQ
5 Industrial Machinery/Components   NASDAQ
6          Computer Manufacturing   NASDAQ

我不知道您是否只是想从名称中获取股票代码,但如果您也在寻找实际的股价信息,您可以执行以下操作:

namedStock <- function(name="Microsoft",
                       start=Sys.Date()-365,
                       end=Sys.Date()-1){
  ticker <- symbolData[agrep(name,symbolData[,2]),1]
  getSymbols(
    Symbols=ticker,
    src="yahoo",
    env=.GlobalEnv,
    from=start,to=end)
}
##
## an xts object named MSFT will be added to
## the global environment, no need to assign
## to an object
namedStock()
##
> str(MSFT)
An ‘xts’ object on 2013-09-03/2014-08-29 containing:
  Data: num [1:251, 1:6] 31.8 31.4 31.1 31.3 31.2 ...
 - attr(*, "dimnames")=List of 2
  ..$ : NULL
  ..$ : chr [1:6] "MSFT.Open" "MSFT.High" "MSFT.Low" "MSFT.Close" ...
  Indexed by objects of class: [Date] TZ: UTC
  xts Attributes:  
List of 2
 $ src    : chr "yahoo"
 $ updated: POSIXct[1:1], format: "2014-09-02 21:51:22.792"
> chartSeries(MSFT)

正如我所说,这不是最干净的解决方案,但希望它可以帮助您。另请注意,我的数据源是在纳斯达克交易的公司(这是大多数主要公司),但您可以轻松地将其与其他来源结合起来。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

以编程方式在 R 中查找股票代码 的相关文章

随机推荐

  • PHP 无法将包含 PHP 代码的文件读取为文本文件

    我偶然发现了以下特点 handle fopen realpath folder files php r 无法读取文件 但是一旦我从文件中删除 php 标签 它变得可读 并且我的脚本在页面上打印非空文件内容 另外 file php 永远不会被
  • jQuery $(document).ready() 未触发

    使用 Google 托管代码中的 jQuery 1 4 2 当文档准备好时 以下 javascript 没有触发所有 3 个 document ready 函数是否有原因 首先 document ready 函数 它呈现标题 第二个函数 它
  • 我可以使用 AJAX“POST”将数据发布到服务器上的 JSON 文件吗?

    我只想要最简单 最简单的方法 使用 POST 用户在我的服务器上输入的数据从 AJAX 表单获取数据 因此 如果用户在页面的输入表单中留下他们的姓名 则 AJAX POST 会将数据发送到我的服务器上的 JSON 文件中 这可能吗 这是获取
  • unixodbc 驱动程序管理器无法在安装时打开指定的库

    我正在使用 ArchLinux 并且正在尝试安装 OpenEdge 进度驱动程序 以便我可以通过 PHP 访问它 我已经安装了 unixodbc 软件包和驱动程序 但是当我通过 isql 或 PHP 测试连接时 出现相同的错误 isql 3
  • AngularJS ng-src 图像路径

    关于使用ng src为了显示图像 此代码在运行时起作用 但在初始页面加载时不起作用 div class imageHolder img div class caption Click to configure div div 在我的初始页面
  • Rest JAX-RS异常,未找到MessageBodyWriter

    我正在使用泽西岛2 13 当我尝试通过浏览器中的 url 访问资源时 出现 MessageBoddyWriter not found 异常 例外 MessageBodyWriter not found for media type appl
  • Julia:如何在宏中使用 kwargs...?

    说我想要 fn a b c sort true 扩展到 gn a b c sort true 目前 我将其写为 macro fn x args kwargs esc gn x args kwargs end 这似乎不起作用 我如何扩展kwa
  • 打开街道地图 (osmdroid) 在 PC 中显示灰色瓷砖而不是地图

    我正在使用 osmdroid 在我的应用程序中获取开放的街道地图 我已经使用所需的 jar osmdroid 构建了我的项目 并在清单中添加了所有需要的权限 但是当我尝试在 android 模拟器 adt eclipse 中调试我的应用程序
  • mysqli_select_db() 期望参数 1 为 mysqli,给定字符串

    我是 Mysqli 新手 收到以下错误 警告 mysqli select db 期望参数 1 为 mysqli 字符串 在 D Hosting 9864230 html includes connection php 第 11 行给出 警告
  • 使用 IMAGE_FILE_LARGE_ADDRESS_AWARE 32 位 - 64 位

    我昨天了解到在 DelphiXE 中使用编译器指令 SetPEFlags IMAGE FILE LARGE ADDRESS AWARE 即使 DelphiXE 编译器生成 32 位代码 您也可以在 64 位计算机上访问 使用 4GB 地址空
  • 在 netbeans 7.0.1 中找不到 web.xml

    我想将文件上传到服务器 为此我正在编写一个 servlet 程序 上传文档的目录位置应从 web xml 中的参数获取 我以前没有使用过 web xml 只知道它为每个 servlet 生成条目 我无法在我在 netbeans 中制作的 W
  • SQLite 插入或替换位置

    我有一个包含 3 列的表 ID 描述和键 其中 ID 不是主键 我想要的是插入或更新 替换当前记录 例子 解密密钥 ID 描述 密钥 999 生日 1988 年 12 月 24 日 我尝试了这个 但它不起作用 INSERT OR REPLA
  • 如何从 JavaPairRDD 中选择前 N 个元素? -阿帕奇火花

    我已经获得了一个键 值对 并将其排序到一个新的JavaPairRDD中 现在 我需要从中选择前 5 个元素 即获取一个新的 JavaPairRDD 其中包含前 5 个元素 我该怎么做呢 有没有比使用 flatMap 更简单的方法 因为它似乎
  • 一起识别长按和平移手势识别器

    我有一个视图 其中添加了平移和长按 UIGestureRecognizer 平移用于移动视图 我想做的是还要注意触摸已停止移动 同时保持活动状态 并触发长按 我发现平底锅开始后长按永远不会被触发 我尝试设置委托并实施 BOOL gestur
  • 回显到标准输出并附加到文件

    我有这个 echo all done creating tables gt gt SUMAN DEBUG LOG PATH 但这应该只附加到文件 而不是写入标准输出 如何写入 stdout 并附加到同一 bash 行中的文件 像这样的东西吗
  • 在R中打印小数逗号而不是小数点

    我正在用 R 进行统计分析 我需要将结果粘贴到用法语编写的报告中 在法语中 浮点数是使用小数逗号而不是小数点来书写的 手动用逗号替换点有点乏味 1 我如何让 R 打印所有浮点数并用逗号分隔整数和小数部分 非常感谢 rmuc8 非常快速有效地
  • 在 Lucene 中正确索引纬度和经度值

    我正在使用 Lucene API 开发 给定半径内基于 美国的最近城市搜索 功能 我在 Lucene 中索引城市的纬度和经度值 如下所示 doc Add new Field latitude paddedLatitude Field Sto
  • Leveled Compaction 策略如何确保 90% 的读取来自一个 sstable

    我试图理解如何分级压实策略在 Cassandra 中 保证 90 的读取都可以通过单个 sstable 得到满足 来自 DataStax 文档 新的 sstables 添加到第一级 L0 并立即与 L1 中的 sstables 进行压缩 当
  • 为什么编译器选择 bool 而不是 string 来进行 L"" 的隐式类型转换?

    最近引入了方法的重载 应用程序开始失败 最终追踪到它 新方法正在我意想不到的地方被调用 We had setValue const std wstring name const std wstring value std wstring a
  • 以编程方式在 R 中查找股票代码

    我有一个包含公司名称的数据字段 例如 company lt c Microsoft Apple Cloudera Ford gt company Company 1 Microsoft 2 Apple 3 Cloudera 4 Ford 等