如何解压缩.Z文件

时间:2016-03-02 18:20:44

标签: r

我希望使用R(版本3.2.2)来读取压缩为.Z个文件的多个文件。我了解在最近的版本中删除了uncompress()。如果有人能让我知道如何使用R来解压缩.Z文件,我会非常感激。

2 个答案:

答案 0 :(得分:1)

您可以尝试安装上次存档的版本。 (请注意,uncompress归档包,而不是以前在基础R中存在的已弃用/删除的函数...)。您需要在计算机上安装适当的开发工具(C编译器,make)[例如见第2点here]。

library("devtools")
install_version("uncompress","1.34")

使用R的开发版本为我安装干净,但我还没有在任何.Z文件上试过它,因为我不会让它们四处闲置。

答案 1 :(得分:1)

我知道我迟到了问题,但是当我找到你的问题时,我正在四处寻找是否有比我们正在做的更好的建议。正如Ben建议的那样,调用另一个工具可能是Windows的最佳选择,Linux和OS X本身可以处理.Z文件。

这是一个函数的例子(不是我写的,Ivan Hanigan写的,但是我已经用它了,所以我知道它有效)在一个检查操作系统的R包中,如果操作系统是,则查找7Zip视窗。

https://github.com/swish-climate-impact-assessment/awaptools/blob/master/R/ZipFunctions.R

################################################################
# name:ZipFunctions.R
uncompress_linux <- function(filename)
  {
    print(filename)
    system(sprintf('uncompress %s',filename))
  }

# tries to find 7 zip exe
ExecutableFileName7Zip <- function()
{
  executableName <- "C:\\Program Files\\7-Zip\\7z.exe"

  if(file.exists(executableName))
  {
    return (executableName)
  }

  #other executable file names and ideas go here ...
  stop("failed to find 7zip")
}

# simple function to extract 7zip file
# need to have 7zip installed
Decompress7Zip <- function(zipFileName, outputDirectory, delete)
{
  executableName <- ExecutableFileName7Zip()

#   fileName = GetFileName(zipFileName)
#   fileName = PathCombine(outputDirectory, fileName)


#   if(file.exists(fileName))
#   {
#     unlink(zipFileName);
#   }

  arguments <- paste(sep="",
                    "e ",
                    "\"", zipFileName, "\" ",
                    "\"-o", outputDirectory, "\" ",
    "")

  print( arguments)

  RunProcess(executableName, arguments)

  if(delete)
  {
    unlink(zipFileName);
  }
}