我想创建一个数据框架,该框架在每次运行脚本时都会更新。我希望一列具有编号,另一列具有记录的日期。这是我到目前为止所拥有的。
# Packages
library(miniUI)
library(shiny)
library(shinyFiles)
library(taskscheduleR)
library(rvest)
library(dplyr)
library(magrittr)
# Read in data
team_trees <- read_html("https://teamtrees.org/")
# Number of Trees
count <- team_trees %>%
html_nodes("#totalTrees") %>%
html_attr("data-count")
total_trees <- count %>%
as.numeric()
# Columns for data frame
day <- Sys.Date()
data <- data.frame(total_trees, day)
data
如何在每次运行脚本而不是替换数据框时更新此数据框?
答案 0 :(得分:0)
每次将数据写入磁盘是否对您有用?
library(readr)
old_data <- read_csv("file/path/data.csv")
new_data <- old_data %>%
rbind(data.frame(total_trees, day))
write_csv(new_data, "file/path/data.csv")
答案 1 :(得分:0)
我的第一个想法是EugeneChong提出的建议,保存到磁盘。但是,如果您不想要这种持久性,则:
# ...
if (!exists("data")) data <- NULL
data <- rbind(data, data.frame(total_trees, day))
这不是处理问题的最干净的方法(rbind
数据处理中的任何故障都可能使所有data
处于不良状态),但是由于您不是保存到文件,我假设持久性的需求是不同的。
最终,一种更具弹性的方法将使用文件(csv,json,feather)或网络存储(SQL,redis)。