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