在 R 中每小时获取在线数据

2024-05-05

我想获取天文台每小时更新预报的数据。

我的一次性数据提取代码如下。

library(RCurl)
web <- getURL("http://www.hko.gov.hk/contente.htm")
web <- unlist(strsplit(web, "\r\n"))
head(web)

temp <- unlist(strsplit(web[1245], "</span>"))
MINtemp <- vector()
MAXtemp <- vector()
for (i in 1:9){
    mintemp <- substr(temp[2*i-1], 
              nchar(temp[2*i-1])-1, 
              nchar(temp[2*i-1]))
    mintemp <- as.numeric(mintemp)
    MINtemp <- append(MINtemp, mintemp)

    maxtemp <- substr(temp[2*i], 
              nchar(temp[2*i])-1, 
              nchar(temp[2*i]))
    maxtemp <- as.numeric(maxtemp)
    MAXtemp <- append(MAXtemp, maxtemp)
}

status <- strsplit(
             substring(web[1242],12),
        "</a></td><td align")
status <- substring(unlist(status), 178)
weather <- vector()
for (i in 1:9){
    status[i] <- unlist(strsplit(status[i], "width"))[1]
    weather <- append(weather, 
                substr(status[i], 
                     1,
                     nchar(status[i])-3
                     )
                )
}

RH <- unlist(strsplit(web[1248], "</span>"))
MINRH <- vector()
MAXRH <- vector()
for (i in 1:9){
    minRH <- substr(RH[2*i-1], 
              nchar(RH[2*i-1])-1, 
              nchar(RH[2*i-1]))
    minRH <- as.numeric(minRH)
    MINRH <- append(MINRH, minRH)

    maxRH <- substr(RH[2*i], 
              nchar(RH[2*i])-1, 
              nchar(RH[2*i]))
    maxRH <- as.numeric(maxRH)
    MAXRH <- append(MAXRH, maxRH)
}

forecast <- paste("+", 1:9, "day(s)", sep=" ")
current <- as.character(rep(Sys.time(),9))
DATA <- data.frame(cbind(current,forecast,MINtemp, MAXtemp, MINRH, MAXRH, weather))
DATA

我得到的数据是

> DATA

                  current   forecast MINtemp MAXtemp MINRH MAXRH                                                                          weather
    1 2014-05-04 08:37:55 + 1 day(s)      21      25    80    95 Cloudy with a few showers and thunderstorms. Showers will be more frequent later
    2 2014-05-04 08:37:55 + 2 day(s)      22      25    75    90                        Cloudy with showers. A few squally thunderstorms at first
    3 2014-05-04 08:37:55 + 3 day(s)      21      24    75    95                                                        Cloudy with a few showers
    4 2014-05-04 08:37:55 + 4 day(s)      22      25    80    95                                                        Cloudy with a few showers
    5 2014-05-04 08:37:55 + 5 day(s)      23      26    80    95                              Cloudy with showers and a few squally thunderstorms
    6 2014-05-04 08:37:55 + 6 day(s)      23      26    80    95   Cloudy with showers. Showers will be heavy at times with squally thunderstorms
    7 2014-05-04 08:37:55 + 7 day(s)      22      25    80    95                                    Cloudy with showers and squally thunderstorms
    8 2014-05-04 08:37:55 + 8 day(s)      22      25    70    95                                                 Mainly cloudy with a few showers
    9 2014-05-04 08:37:55 + 9 day(s)      22      26    70    90                                                                    Mainly cloudy

我希望 R 脚本每小时运行一次。然后使用rbind(DATA, data)来积累数据集。我使用 CMD R BATCH 搜索类似的主题。虽然我可以在 R 中做到这一点,比如使用Sys.sleep() and while(substr(Sys.time(), 15,16)=="00")?

我搜索过类似的任务安排这个链接 https://stackoverflow.com/questions/2793389/automating-r-script

我在目录中找到了 Rscript.exeC:\Program Files\R\R-3.0.2\bin\Rscript.exe

我将我的 Rscipt 保存在D:\mydocument\test.r虽然我仍然不清楚如何完成任务。


你可能可以使用Sys.sleep() but it 闻起来像糟糕的代码 https://en.wikipedia.org/wiki/Code_smell.

相反,设置一个cron job https://en.wikipedia.org/wiki/Cron每小时更新一次代码。那么你的脚本就很简单,而且更健壮。

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

在 R 中每小时获取在线数据 的相关文章

  • 通过 R 中的数据子集执行计算

    我想对数据框的 PERMNO 列中的每个公司编号进行计算 其摘要可以在此处查看 gt summary companydataRETS PERMNO RET Min 10000 Min 0 971698 1st Qu 32716 1st Qu
  • 如何确定 R 包的作者?

    如何确定包的作者是谁 鉴于我们拥有这个广泛使用的代码库 我认为参考我在分析中使用的软件是合适的 有没有办法以编程方式检索作者和任何其他相关信息 在伪代码中 我想执行以下操作 references base 我怎样才能做到这一点 为了能够引用
  • 使用 ggplot 构面时增加闪亮的绘图大小

    有没有办法增加绘图窗口的大小shiny取决于在一个中使用的面的数量ggplot图 也许使用垂直滚动 例如 使用下面的示例 当输入为 A 有三个方面 情节看起来不错 当选项 B 选择绘图数量会增加 但绘图窗口保持相同大小 导致绘图太小 是否有
  • 使用 RDCOMClient 搜索 Outlook 收件箱

    我尝试使用 RDCOMClient 在 Outlook 收件箱中搜索电子邮件中的特定主题 然后获取附件 我在一封电子邮件上进行了这项工作 但由于主题包含日期元素 我需要搜索成为一个类似的子句 但不太清楚这适合我的下面的查询 outlook
  • 合并数据框而不重复行

    我想合并两个数据框 但如果有多个匹配项 则不想重复行 相反 我想总结一下那天的观察结果 来自 合并 提取两个数据框中与指定列匹配的行并将其连接在一起 如果有多个匹配项 则所有可能的匹配项各贡献一行 这是一些示例代码 days lt as d
  • 按特定样本前缀对列名称向量进行子集化

    假设我有一个如下所示的数据框 ca01 lt c 1 10 ca02 lt c 2 11 ca03 lt c 3 12 stuff 1 lt rep test 10 other lt rep 9 10 data lt data frame
  • 从 R 中的方差分析 (glm) 中提取残余偏差

    我在 R 中安装了一个 glm 模型并采用了方差分析表 我需要提取 残余偏差 列 但它会产生错误 以下是代码 创建数据 counts lt c 18 17 15 20 10 20 25 13 12 outcome lt gl 3 1 9 t
  • ubuntu中R的igraph包的安装

    我使用以下命令在 ubuntu 中安装 R 的 igraph 包 install packages igraph 但我收到一条错误消息 警告 无法访问存储库的索引 http ftp iitm ac in cran src contrib h
  • R 将多个值与向量进行比较并返回向量[重复]

    这个问题在这里已经有答案了 我有一个向量 A 对于 A 的每个元素 我想检查它是否等于第二个向量 Targets 中的任何元素 我想要一个逻辑值向量 其长度为 A 作为返回 也提到了同样的问题here http r 789695 n4 na
  • 如何在knitr和RStudio中为word和html设置不同的全局选项?

    我正在使用 RStudio 0 98 932 和 knitr 1 6 想要为word和html设置不同的全局knitr选项 例如 想要将word的fig width和fig height设置为6 html的fig width和fig hei
  • 无法更新/编辑从 R 中的包(`gratia`)导出的 ggplot2 对象

    我希望我在这里遗漏了一些令人痛苦的明显的东西 我希望更新 例如 修复标题 实验室等 由 生成的 ggplot 对象gratia draw 不太确定为什么我无法更新该对象 有一个简单的解决方案吗 devtools install github
  • 如何在 R 中合并同名列表中的数据框?

    我有一个包含很多数据框的列表 如果它们具有相同的名称 我想合并它们 即合并所有具有相同名称 a 和 b 的数据框 像这样 a lt aaaaa b lt bbbbb c lt ccccc g lt list df1 lt data fram
  • R中的字典数据结构

    在 R 中 我有 例如 gt foo lt list a 1 b 2 c 3 如果我输入foo I get a 1 1 b 1 2 c 1 3 我怎样才能看透foo仅获取 键 列表 在这种情况下 a b c R 列表可以具有命名元素 因此可
  • 将 ftransform 与折叠 R 包中的 fgroup_by 一起使用

    我正在尝试重现以下输出dplyr代码与R包裹collapse dplyr Code library tidyverse starwars gt select name mass species gt group by species gt
  • Quantmod 的简单功能不再起作用

    我明天要交论文 我收到了一条关于 quantmod 的非常奇怪的错误消息 这是我在过去几周使用这个包时从未遇到过的 我无法导入特定于道琼斯指数 DJI 的数据 我收到以下错误消息 getSymbols DJI src yahoo from
  • 使用officer R导出时如何提高ggplots的分辨率

    我想将图表导出到 PPT 并使用Officer 包来实现相同的目的 但是 图表的默认分辨率较低 我想更改它 我目前正在使用以下电话 ph with gg p1 type chart res 1200 其中 p1 是 ggplot 对象 运行
  • R 中两个时间戳之间的左连接

    我的目标是执行左连接intervals哪里的bike id比赛和created at时间戳在records在 之间start and end in the intervals table gt class records 1 data ta
  • 正态分布平均值的贝叶斯推理玩具 R 代码 [降雪量数据]

    我有一些降雪观测 x lt c 98 044 107 696 146 050 102 870 131 318 170 434 84 836 154 686 162 814 101 854 103 378 16 256 我被告知它遵循正态分布
  • 在R中循环子文件夹

    我正在 R 环境中包含多个子文件夹的文件夹中工作 我想要循环遍历多个子文件夹 然后在每个子文件夹中调用 R 脚本来执行 我想出了下面的代码 但我的代码似乎添加了 到子文件夹列表 我收到错误 文件中的错误 文件名 r 编码 编码 无效的 描述
  • 绘制 Cox 回归的 Kaplan-Meier 图

    我使用 R 中的以下代码设置了一个 Cox 比例风险模型来预测死亡率 添加协变量 A B 和 C 只是为了避免混淆 即年龄 性别 种族 但我们真正对预测变量 X 感兴趣 X 是一个连续变量 cox model lt coxph Surv t

随机推荐

  • 如何在 EF4 中获取实体的第一个 EntityKey 名称

    如何获取 Entity Framework 4 实体的第一个 EntityKey 名称 因为我正在构建存储库系统 并且我想通过 Id 获取项目 EF 中的主键是实体的第一个实体键 我正在使用这个代码 public virtual TEnti
  • 当通过音频采样的数据数量超过 AudioRecord 构造函数中设置的“bufferSizeInBytes”时会发生什么?

    public AudioRecord int audioSource int sampleRateInHz int channelConfig int audioFormat int bufferSizeInBytes 这是公共构造函数Au
  • 在 matlab/octave 中将数据集分成两个子集 [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 将数据集分为两个子集 例如 训练 和 测试 其中 训练集包含 80 的数据 测试集包含剩余的 20 分裂的意思是生成一个长度等于的逻辑索引
  • 使用 Boost.Asio 进行广播的问题

    如果问题之前已得到解答 我提前表示歉意 但我已经搜索并没有找到任何对我有帮助的东西 正如问题标题所示 我正在尝试将包从服务器广播到一组侦听任何消息的客户端 客户端将计算一秒钟内收到的消息数 服务器端的事情是这样的 class Server
  • 字段名称来自表 1 上的 ID,但来自其他表上的名称

    这是一个 Firebird 数据库 第一张表 联系人 Company ID 职位名称 第二个表 Client id 公司名称 在联系人中 我希望 job title 字段包含 co name client id 和 company id 相
  • 有没有比使用 backtrace() 更便宜的方法来查找调用堆栈的深度?

    我的日志记录代码使用的返回值回溯 http linux die net man 3 backtrace确定当前堆栈深度 出于漂亮的打印目的 但我可以从分析中看到这是一个相当昂贵的调用 我不认为有更便宜的方法吗 请注意 我不关心帧地址 只关心
  • 绘制多个散点图 pandas

    我认为绘制多个图表有很多问题 但不是专门针对这种情况 如下所示 pandas 文档说 重复绘图方法 在单个轴上绘制多个列组 但是 这对于 3 个或更多列组如何工作 例如 如果我们定义第三列 bx df plot kind scatter x
  • 如何更改 PyCharm/Intellij Idea 中的自动完成行为?

    当您从中间重写某些变量 属性或函数而 PyCharm 让旧字符串的其余部分保留在那里时 这是非常烦人的 我的光标位于 s 和 之间 我按了 ctrl space 现在 当我使用建议完成时 它不会删除该函数的其余部分 是否可以让它删除其余的功
  • GSON:如何在保持循环引用的同时防止 StackOverflowError?

    我有一个带有循环引用的结构 出于调试目的 我想转储它 基本上任何格式都可以 但我选择了JSON 由于它可以是任何类 所以我选择了不需要 JAXB 注释的 GSON 但是 GSON 会遇到循环引用并递归直到StackOverflowError
  • CursorAdapter 破坏了 CHOICE_MODE_MULTIPLE 选项

    我有一个ListFragment 我在其中添加一个CursorAdapter to my ListView 并且我希望能够单击几行以使用上下文操作栏 我使用 SherlockActionbar 当我使用一个简单的ArrayAdapter 但
  • 在单元测试中重复的代码是否更容易被容忍?

    前段时间 当我经历并重构它们以使其更加出色时 我破坏了几个单元测试DRY http en wikipedia org wiki Don 27t repeat yourself 每次测试的目的不再明确 测试的可读性和可维护性之间似乎需要权衡
  • 递归 noexcept 规范

    使用 g 4 9 和 clang 3 4 进行测试 为什么此代码无法编译 namespace template
  • 无法在服务器端 NodeJS 启用 CORS

    我无法启用CORS在服务器端 我的前端和后端服务器有不同的端口 服务器端的实现方式如下 http createServer function req res Here you can create your data response in
  • mysqldump 只导出一张表

    我使用 mysqldump 导出数据库 如下所示 mysqldump u root ppassword my database gt c temp my database sql 不知何故 它只导出一张表 我做错了什么吗 尝试这个 一般有三
  • 从时间戳间隔获取缺失的月份

    我从服务器接收时间 以秒为单位 然后使用以下代码将 tjose 秒转换为月份 NSDateFormatter dateFormatter NSDateFormatter alloc init autorelease dateFormatte
  • 存储大 DNA 序列最有效的方法是什么?

    我想用 iOS 应用程序打包一个巨大的 DNA 序列 大约 3 000 000 000 个碱基对 每个碱基对都可以有一个值A C T or G 将每个碱基对存储在一个字节中会产生 3 GB 的文件 这太大了 现在我想将每个碱基对存储在两位中
  • 在 PHP 中显式声明属性重要吗?

    我按照教程用 PHP 创建了一个简单的博客写作应用程序 并修改了本教程中的类 以便它们具有附加功能 修改这个非常简单的应用程序让我更好地了解了 PHP 的工作原理 但是我遇到了一个有趣的情况 我的项目中的一个类有大约六个类属性 例如publ
  • 这两个 clojure 函数之间有什么区别和问题?

    对于课程项目的一部分 我正在实现一个函数来从文件中读取一些数据并根据该文件创建图形结构 一整天我问了几个问题 结果就是这样 下面是一个可以正常工作的函数 它首先以惰性序列的形式读入文件 然后循环解析每一行并将其打印出来 defn print
  • 如何从 BroadcastReceiver 刷新 ListView?

    如果我打电话notifyDataSetChanged 在与我的 ListView 关联的自定义适配器上 所有视图都应该自行刷新 getView 将被调用 现在我有一个正在监听事件的 BroadcastReceiver 当事件触发时 List
  • 在 R 中每小时获取在线数据

    我想获取天文台每小时更新预报的数据 我的一次性数据提取代码如下 library RCurl web lt getURL http www hko gov hk contente htm web lt unlist strsplit web