我的目标是创建一个直接从网址导入的数据框列表。我现在拥有的:
System.out.print(suit[0] + String.valueOf(facevalue[1]));
当我运行时,我收到错误:
xls2sep中的错误(xls,sheet,verbose = verbose,...,method = method, :中级文件 'C:\用户\麦克\应用程序数据\本地的\ Temp \ Rtmpk9t4hG \ file308c4520306c.csv' 失踪!另外:警告消息:运行命令 “ “C:\ STRAWB〜1 \ perl的\ BIN \ PERL52〜1.EXE” “C:/Users/Mike/Documents/R/win-library/3.3/gdata/perl/xls2csv.pl” “https://minerals.usgs.gov/minerals/pubs/historical-statistics/ds140-chrom.xlsx” “C:\用户\麦克\应用程序数据\本地的\ Temp \ Rtmpk9t4hG \ file308c4520306c.csv” “1”'在file.exists中存在状态22错误(tfn):无效的“文件” 参数
我认为无效的文件参数意味着它无法找到该文件。不知道如何纠正它,因为网址肯定是正确的。
有什么想法吗?
答案 0 :(得分:2)
为什么不做这样的事情(使用更强大的readxl
包):
urls <- list('https://minerals.usgs.gov/minerals/pubs/historical-statistics/ds140-chrom.xlsx',
'https://minerals.usgs.gov/minerals/pubs/historical-statistics/ds140-coppe.xlsx',
'https://minerals.usgs.gov/minerals/pubs/historical-statistics/ds140-nicke.xlsx',
'https://minerals.usgs.gov/minerals/pubs/historical-statistics/ds140-tin.xlsx',
'https://minerals.usgs.gov/minerals/pubs/historical-statistics/ds140-tungs.xlsx')
# Download files
mapply(download.file, unlist(urls), sapply(urls, basename))
# Read Excel files into a list of data.frames
library(readxl);
lst <- lapply(sapply(urls, basename), read_excel);
这会产生文件的本地副本,但如果这不是交易破坏者,我建议使用readxl
。说实话,保留源数据副本始终是一个好主意,以确保结果的可重复性和一致性。
答案 1 :(得分:2)
如果您想避免下载文件而不是导入文件,可以使用rio
包。它有readxl
(默认值)和openxlsx
(非默认值)的包装,允许您从网址导入xlsx
。我使用rio
因为readxl
doesn't have the ability to read urls。
require(tidyverse)
require(rio)
urls <- list('https://minerals.usgs.gov/minerals/pubs/historical-statistics/ds140-chrom.xlsx',
'https://minerals.usgs.gov/minerals/pubs/historical-statistics/ds140-coppe.xlsx',
'https://minerals.usgs.gov/minerals/pubs/historical-statistics/ds140-nicke.xlsx',
'https://minerals.usgs.gov/minerals/pubs/historical-statistics/ds140-tin.xlsx',
'https://minerals.usgs.gov/minerals/pubs/historical-statistics/ds140-tungs.xlsx')
Myxlsx <- lapply(urls, FUN = rio::import)