如何在R中直接从UCI ML仓库加载压缩包内的CSV数据集?
直接从UCI Zip链接加载CSV到R环境
你遇到的问题是read.csv()无法直接解析远程压缩包,需要先建立压缩包连接或临时处理压缩文件。以下是两种无需本地保存文件的解决方案:
方法1:Base R原生实现
# 定义数据集链接 url <- "https://archive.ics.uci.edu/static/public/759/glioma+grading+clinical+and+mutation+features+dataset.zip" # 创建临时文件存放下载的压缩包 temp_zip <- tempfile(fileext = ".zip") # 下载压缩包到临时文件 download.file(url, temp_zip) # (可选)查看压缩包内的文件列表,确认目标CSV文件名 print(unzip(temp_zip, list = TRUE)) # 提取并加载CSV文件(替换为压缩包内实际的CSV文件名) dataset <- read.csv(unzip(temp_zip, files = "TCGA_InfoWithGrade.csv")) # 手动清理临时文件(R会话结束后也会自动清理) unlink(temp_zip)
方法2:使用readr包简化操作
library(readr) url <- "https://archive.ics.uci.edu/static/public/759/glioma+grading+clinical+and+mutation+features+dataset.zip" # 直接通过unz()建立压缩包内文件的连接,读取CSV dataset <- read_csv(unz(url, "TCGA_InfoWithGrade.csv"))
注意事项
- 执行前确认压缩包内的CSV文件名正确,可通过方法1中的
unzip(temp_zip, list = TRUE)查看所有文件。 - 方法2无需手动处理临时文件,代码更简洁,适合常规场景。
内容的提问来源于stack exchange,提问作者Juhi Shah
相关产品推荐
相关产品推荐

