rbind 联机目录中的 txt 文件 (R)

rbind txt files from online directory (R)

我正在尝试从 url 获取串联文本文件,但我不知道如何使用 html 和不同的文件夹执行此操作?

这是我试过的代码,但它只列出了文本文件,并且有很多 html 代码,例如 this 我该如何解决这个问题,以便我可以将文本文件组合成一个csv文件?

library(RCurl)
url <- "http://weather.ggy.uga.edu/data/daily/"
dir <- getURL(url, dirlistonly = T)
filenames <- unlist(strsplit(dir,"\n")) #split into filenames
#append the files one after another
for (i in 1:length(filenames)) {
file <- past(url,filenames[i],delim='') #concatenate for urly 
if (i==1){
cp <- read_delim(file, header=F, delim=',')
}
else{
temp <- read_delim(file,header=F,delim=',')
cp <- rbind(cp,temp) #append to existing file
rm(temp)# remove the temporary file
}
}

这是我为我工作的代码片段。我喜欢使用 rvest 而不是 RCurl,因为这是我学到的。在这种情况下,我能够使用 html_nodes 函数来隔离每个以 .txt 结尾的文件。结果 table 将时间保存为字符串,但您可以稍后修复。如果您有任何问题,请告诉我。

library(rvest)
library(readr)

url <- "http://weather.ggy.uga.edu/data/daily/"

doc <- xml2::read_html(url)
text <- rvest::html_text(rvest::html_nodes(doc, "tr td a:contains('.txt')"))


# define column types of fwf data ("c" = character, "n" = number)
ctypes <- paste0("c", paste0(rep("n",11), collapse = ""))
data <- data.frame()

for (i in 1:2){
  file <- paste0(url, text[1])

  date <- as.Date(read_lines(file, n_max = 1), "%m/%d/%y")

  # Read file to determine widths
  columns <- fwf_empty(file, skip = 3)

  # Manually expand `solar` column to be 3 spaces wider
  columns$begin[8] <- columns$begin[8] - 3

  data <- rbind(data, cbind(date,read_fwf(file, columns, 
                                          skip = 3, col_types = ctypes)))
}