gpt4 book ai didi

r - 无法在 R 中使用 system.file 或 file.path 加载文件?

转载 作者:行者123 更新时间:2023-12-02 03:28:46 25 4
gpt4 key购买 nike

我正在使用一个需要我加载“sam”文件的程序。但是,给出的代码不会创建必要的 data.file 变量,而是生成 ""(空白)。

这是给出的代码:

data.file <- system.file(file.path('extdata', 'vignette-sam.txt'), package='flipflop')

我输入:

data.file <- system.file(file.path("Users", "User1", "Desktop", "Cond_18", 
"Sorted_bam_files", "Cond_18_1.bam_sorted.sam"),
package='flipflop')

路径绝对正确,包名是flipflop。然而,每次我检查变量 data.file 是什么时,它都会生成 ""。因此该文件永远不会被加载,并且脚本无法运行。

我还将整个文件路径放入它的一个版本中:

data.file <- system.file('/Users/User1/Desktop/Cond_18/Sorted_bam_files/DBM_18_1.bam_sorted.sam', 
package='flipflop')

该版本不包括file.path,但它是脚本示例之一。

使用这些变量的代码行是这样的:

if(preprocess.instance==''){
print('PRE-PROCESSING sam file ....')
data.file <- path.expand(path=data.file) # In case there is a '~' in the input path
if(data.file==''){ print('Did you forget to give a SAM file?') ; return(NULL) }
annot.file <- path.expand(path=annot.file)
samples.file <- path.expand(path=samples.file)

由于 data.file 是 "" 它默认为 NULL

最佳答案

当您要引用的文件来自包时,您可以使用system.file。以下是 system.file 的帮助文件内容:

Finds the full file names of files in packages etc.

您只想引用计算机上的文件。您可以直接存储路径并将其用作您的数据文件

data.file <- "C:/path/to/your/file"

该脚本使用file.path,因为它是一种以独立于平台的方式生成路径的更安全的方法。例如:

> file.path("C:", "Users", "BotsRule", "Code", "myawesomeRscript.R")
[1] "C:/Users/BotsRule/Code/myawesomeRscript.R"

因此,解决问题的方法就是确保您实际上正在做某事,只是任何事情来正确指定文件的路径。

关于r - 无法在 R 中使用 system.file 或 file.path 加载文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44782607/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com