【发布时间】:2021-01-12 02:28:17
【问题描述】:
我知道以前有人问过类似的问题,但我不明白如何解决此错误或在以前的帖子中找到任何解决方案。
CTCF_intersect_files<-list.files(paste(intersect_bed_path,"CTCF/",sep=""))
length(CTCF_intersect_files) #762
CTCF_intersection=lapply(CTCF_intersect_files,
function(x) {
#Load in "x" file skipping empty files
t_CTCF=if (!file.size(x) == 0) {
read.table(x, header=FALSE)
}
})
Error in if (!file.size(x) == 0) { :
missing value where TRUE/FALSE needed
【问题讨论】:
-
x作为文件不存在。我建议您使用file.exists(x)进行测试。注意file.size("file_does_not_exist.txt")是NA,然后看stackoverflow.com/q/7355187/3358272。 -
如果您使用
list.files创建了CTCF_intersect_files,也许您应该添加list.files(..., full.names=TRUE)以便也包含路径(相对或绝对,取决于您如何称呼它)。 -
第三个选项:
if (isTRUE(file.size(x) > 0)) read.table(...),虽然这并不能解决您期望文件存在但它不存在的根本问题。 -
我相信错误来自
!file.size(x) == 0。这否定了file.size,而不是等于零。 -
如果您查看
CTCF_intersect_files,您会看到文件名。在我的第一条评论中,我建议检查文件是否存在。file.exists(CTCF_intersect_files[1])返回什么?如果您查找其中一个文件名,您会发现它们在当前目录中不存在。 R不会推断(坦率地说,没有语言会)当你说“读取文件quux.txt”时,你的意思是“读取@987654336在我提供给不同函数调用一个或多个表达式之前的子目录中找到的 @".
标签: r