在R中解压Formula 1数据.zip文件时遭遇error 1提取错误
解决R解压F1数据zip文件报错的问题
首先,你的核心操作误区是:直接把远程URL传给了unzip()函数。R的unzip()工具本质是处理本地文件的,没办法直接从网络拉取并解压,这就是触发error 1 in extracting from zip file报错的主要原因。
接下来给你分步修正的方案:
1. 先把zip文件下载到本地
用download.file()函数先把文件保存到你的工作目录里,注意Windows用户要加上mode = "wb"参数(二进制模式下载,避免文件损坏):
# Windows用户版本 download.file(url = "http://ergast.com/downloads/f1db_csv.zip", destfile = "f1db_csv.zip", mode = "wb") # macOS/Linux用户可以省略mode参数 download.file(url = "http://ergast.com/downloads/f1db_csv.zip", destfile = "f1db_csv.zip")
2. 再解压本地的zip文件
下载完成后,就可以用unzip()处理本地文件了:
# 直接解压到当前工作目录 dat <- unzip(zipfile = "f1db_csv.zip") # 或者指定解压到新建的文件夹里(更整洁) dir.create("f1_data", showWarnings = FALSE) # 创建文件夹,重复创建时不报错 dat <- unzip(zipfile = "f1db_csv.zip", exdir = "f1_data")
其他可能的排查点
如果还是报错,你可以检查这几点:
- 网络是否稳定:如果下载的文件不完整,解压时也会报错,重新运行
download.file()试试 - 写入权限:确保你的工作目录有写入权限,比如不要直接解压到系统盘的受保护文件夹(如C:\Program Files)
- 文件是否损坏:可以手动打开下载的zip文件,看看能不能正常解压,排除文件本身的问题
内容的提问来源于stack exchange,提问作者djc55
相关产品推荐
相关产品推荐

