我有很多这样的文件:
temp1 <- tempfile()
temp2 <- tempfile()
download.file("https://my.pgp-hms.org/user_file/download/3658", temp1)
download.file('https://my.pgp-hms.org/user_file/download/3671', temp2)
一个是文本(一个是16.1MB,另一个是5.6MB的zip)。
请告知我如何即时检查?这是一个公共数据集,我不能告诉作者几年前更改保存数据的方式。
我尝试过summary(file(filename))$class
,但没有帮助我。
我在这里在StackOverFlow上读到read.table
可以做到这一点,它实际上可以做到,但是当它被压缩时,我变得乱七八糟。
答案 0 :(得分:2)
我不知道有任何内置的R功能,但是您可以尝试类似的方法。它只是一个小的自定义函数,在该函数中,它尝试列出zip文件中包含的文件,如果它可以列出文件,则返回TRUE。如果遇到错误,则无法解压缩该文件,并返回FALSE值。但这并不是100%准确的,因为如果您正在测试类似xlsx文件的内容,则会得到误报。
is.zip <- function(filepath){
result <- tryCatch({
unzip(filepath, list = TRUE)
return(TRUE)
}, error = function(e){
return(FALSE)
})
return(result)
}
is.zip(temp1)
is.zip(temp2)