我遇到以下问题:
.C中的错误(“NetCDFOpen”,as.character(filename),ncid = integer(1),status = integer(1),: C符号名称“NetCDFOpen”不在DLL中,用于包“xcms”
你是如何得到这个错误的:
nc <- xcms:::netCDFOpen(cdfFile)
ncData <- xcms:::netCDFRawData(nc)
xcms:::netCDFClose(nc)
我不知道为什么这不起作用,尽管它应该。欲了解更多信息,请随时询问。可以在 TargetSearchData 包中找到免费的.cdf文件。
代码示例:
## The directory with the NetCDF GC-MS files
cdfpath <- file.path(.find.package("TargetSearchData"), "gc-ms-data")
cdfpath
答案 0 :(得分:3)
我不认为应该,正如你暗示的那样。首先,您通过:::
使用非导出功能。此外,如错误消息所述,未定义的NetCDFOpen
符号是dll
/ so
个文件。
使用xcms
的标准输入功能,工作顺利:
> library("xcms")
> cdfpath <- file.path(.find.package("TargetSearchData"), "gc-ms-data")
> cdfFile <- dir(cdfpath, full.names=TRUE)[1]
> xs <- xcmsSet(cdfFile)
7235eg04: 135:168 185:314 235:444 285:580
> xr <- xcmsRaw(cdfFile)
如果您确实想手动输入数据,则应使用mzR
包依赖的xcms
包中的功能:
> openMSfile(cdfFile)
Mass Spectrometry file handle.
Filename: /home/lgatto/R/x86_64-unknown-linux-gnu-library/2.16/TargetSearchData/gc-ms-data/7235eg04.cdf
Number of scans: 4400
最后,请注意始终提供sessionInfo
的输出,以确保您使用的是最新版本。就我而言:
> sessionInfo()
R Under development (unstable) (2012-10-23 r61007)
Platform: x86_64-unknown-linux-gnu (64-bit)
locale:
[1] LC_CTYPE=en_GB.UTF-8 LC_NUMERIC=C
[3] LC_TIME=en_GB.UTF-8 LC_COLLATE=en_GB.UTF-8
[5] LC_MONETARY=en_GB.UTF-8 LC_MESSAGES=en_GB.UTF-8
[7] LC_PAPER=C LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_GB.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] BiocInstaller_1.9.4 xcms_1.35.1 mzR_1.5.1
[4] Rcpp_0.9.15
loaded via a namespace (and not attached):
[1] Biobase_2.19.0 BiocGenerics_0.5.1 codetools_0.2-8 parallel_2.16.0
[5] tools_2.16.0
虽然如果您使用R和Bioconductor的稳定版本(目前为2.15.2
/ 2.11
)可能会有所不同。
希望这有帮助。