0

我正在尝试使用unz()R 中的函数从 SAS 读取数据集。我不想解压缩文件。我已成功使用以下内容阅读其中之一:

dir <- "C:/Users/michael/data/"
setwd(dir)
dir_files <- as.character(unzip("example_data.zip", list = TRUE)$Name)
ds <- read_sas(unz("example_data.zip", dir_files))

这很好用。我能够读取数据集并进行分析。但是,当我尝试读取另一个数据集时,我遇到了一个错误:

dir2_files <- as.character(unzip("data.zip", list = TRUE)$Name)
ds2 <- read_sas(unz("data.zip", dir2_files))
Error in read_connection_(con, tempfile()) : 
  Evaluation error: error reading from the connection.

我在这里阅读了其他问题,说文件路径可能指定不正确。一些答案提到将 list.files() 提交到控制台以查看列出的内容。

list.files()
[1] "example_data.zip"              "data.zip"

如您所见,我可以看到文件夹,并且我能够成功地从“example_data.zip”中读取数据集,但我无法访问 data.zip 文件夹。

我错过了什么?提前致谢。

4

1 回答 1

0

您的“dir2_files”是“data.zip”中不同文件名称的字符串向量。因此,例如,如果您要读取的文件的名称位于“dir_files”中的“k”位置和“dir2_files”中的“j”位置,那么让我们像这样更新您的脚本:

 dir <- "C:/Users/michael/data/"
  setwd(dir)
 dir_files <- as.character(unzip("example_data.zip", list = TRUE)$Name)
ds <- read_sas(unz("example_data.zip", dir_files[k]))





 dir2_files <- as.character(unzip("data.zip", list = TRUE)$Name)
 ds2 <- read_sas(unz("data.zip", dir2_files[j]))
于 2021-11-10T23:13:33.673 回答