小编Dan*_*her的帖子

"中位数"没有可见的全局函数定义

自最新的R更新后,我得到了Note

summary.xmlImport:'median'没有可见的全局函数定义

在CRAN检查.进一步注意到参考read.table,write.table并且在R以外的标准功能

当我查看我的文件summary.xmlImport时,该文件如下所示:

summary.xmlImport <- function(object, ...){

   rowCount <- sapply(object,nrow)
   cat("Summary of xmlImport object\n")
   cat("---------------------------\n")
   cat("Sequences    :",length(object),"\n")
   cat("Min hits     :",min(rowCount),"\n")
   cat("Average hits :",mean(rowCount),"\n")
   cat("Median hits  :",median(rowCount),"\n")
   cat("Max hits     :",max(rowCount),"\n")
   invisible(object)

} 
Run Code Online (Sandbox Code Playgroud)

我不明白,为什么我现在应该添加median功能的命名空间,但为什么不min,mean等等.需要注意的是只有约median功能.

有人知道Note的原因是什么以及如何修复它?我注意到有大量的R包当前具有相同的注释.

我可以在非声明变量的上下文中理解这个警告,但我会假设median(),read.table()这样的函数在R中是全局可见的,特别是mean()看起来像!?

编辑:我只收到关于CRAN的注意事项,但没有在我的本地计算机上收到什么使搜索解决方案有点讨厌...我的电脑的会话信息:

> sessionInfo()
R version 3.2.1 (2015-06-18)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 14.04.2 LTS
Run Code Online (Sandbox Code Playgroud)

r

34
推荐指数
1
解决办法
1万
查看次数

Cran检查的在线工具

即使我害怕有点偏离主题,但我不知道还有什么要问这个,对不起!

我正在使用Linux系统开发我的R-package,因此我可以R CMD check --as-cran轻松地为Linux 运行该命令.对于Windows,也可以使用同事计算机.

但是,如何检查MacOS的软件包?或者更糟糕的是,如何检查Solaris?我只是问,因为我从CRAN检查中得到了一个错误,很可能在没有一些尝试+错误的情况下我将无法修复它.但是反复上传新软件包直到MacOS修复错误都不是解决方案......

因此我的问题是,是否有一个类似于win-builder的在线工具(例如'win-check.r-project.org'和'macos-check.r-project.org'等),你可以检查你的包括所有可能的平台,在提交给cran之前?不幸的是,我不认识任何拥有Mac的人,苹果也不容易在x86计算机上安装他们的操作系统(我找到了Hackintosh项目,但它看起来有点阴暗......).拥有这样的工具可以更容易地解决一个包中的某些问题.

感谢您阅读本文!

r cran

15
推荐指数
2
解决办法
778
查看次数

R-package中的数据弃用

在我的一个R-packages中,我有一些我想删除的愚蠢的示例数据.为此,我首先要遵循常用的方法来弃用然后将其解散.

为了从R-package中删除函数,我找到了这样的方法:

oldFunc <- function()
{
    .Deprecated("newFunc")
}
Run Code Online (Sandbox Code Playgroud)

接下来(假设6个月)

oldFunc <- function()
{
    .Defunct("newFunc")
}
Run Code Online (Sandbox Code Playgroud)

然后又过了6个月我可以从包中删除该功能.

但是,如何删除存储/data/myData.rda在包中的数据对象并且还有一些myData.Rd描述?

r deprecated r-package

7
推荐指数
1
解决办法
493
查看次数

使用索引文件从文本文件中打印许多特定行

我有一个超过1亿行的大型文本文件,名为reads.fastq.此外,我还有另一个文件takeThese.txt,其中包含reads.fastq应该打印的文件中的行号(每行一个).

目前我用

awk 'FNR == NR { h[$1]; next } (FNR in h)' takeThese.txt reads.fastq > subsample.fastq

显然需要很长时间.有没有办法使用存储在另一个文件中的行号从文本文件中提取行?如果takeThese.txt文件被排序,它会加快速度吗?

编辑:

我有几个文件示例行:

reads.fastq:

@HWI-1KL157:36:C2468ACXX
TGTTCAGTTTCTTCGTTCTTTTTTTGGAC
+
@@@DDDDDFF>FFGGC@F?HDHIHIFIGG
@HWI-1KL157:36:C2468ACXX
CGAGGCGGTGACGGAGAGGGGGGAGACGC
+
BCCFFFFFHHHHHIGHHIHIJJDDBBDDD
@HWI-1KL157:36:C2468ACXX
TCATATTTTCTGATTTCTCCGTCACTCAA
Run Code Online (Sandbox Code Playgroud)

takeThese.txt :

5
6
7
8
Run Code Online (Sandbox Code Playgroud)

这样输出看起来像这样:

@HWI-1KL157:36:C2468ACXX
CGAGGCGGTGACGGAGAGGGGGGAGACGC
+
BCCFFFFFHHHHHIGHHIHIJJDDBBDDD
Run Code Online (Sandbox Code Playgroud)

编辑:建议脚本的比较:

$ time perl AndreasWederbrand.pl takeThese.txt reads.fastq  > /dev/null

real    0m1.928s
user    0m0.819s
sys     0m1.100s

$ time ./karakfa  takeThese_numbered.txt reads_numbered.fastq  > /dev/null

real    0m8.334s
user    0m9.973s
sys     0m0.226s

$ …
Run Code Online (Sandbox Code Playgroud)

unix bash awk sed

6
推荐指数
1
解决办法
226
查看次数

strsplit到data.frame与不完整的输入

我尝试将一个字符串向量分成一个data.frame对象,对于一个固定的顺序,这不是一个问题(例如像这里写的那样),但在我的特定情况下,未来数据框的列在字符串对象.这是玩具输入的输出结果:

input <- c("an=1;bn=3;cn=45",
           "bn=3.5;cn=76",
           "an=2;dn=5")

res <- do.something(input)

> res
      an  bn  cn  dn
[1,]  1   3   45  NA
[2,]  NA  3.5 76  NA
[3,]  2   NA  NA  5
Run Code Online (Sandbox Code Playgroud)

我现在正在寻找do.something能够以有效方式实现这一目标的功能.我当时的幼稚的解决办法是循环输入对象,strsplit那些;然后strsplit他们再次=,然后填写data.frame的结果的结果.有没有办法做更多R-like类似的?我担心按元素执行元素会花费很长时间才能生成长向量input.

编辑:为了完整,我天真的解决方案看起来像这样:

  do.something <- function(x){
    temp <- strsplit(x,";")
    temp2 <- sapply(temp,strsplit,"=")
    ul.temp2 <- unlist(temp2)
    label <- sort(unique(ul.temp2[seq(1,length(ul.temp2),2)]))
    res <- data.frame(matrix(NA, nrow = length(x), ncol = length(label)))
    colnames(res) <- label
    for(i in 1:length(temp)){
      for(j in …
Run Code Online (Sandbox Code Playgroud)

string r dataframe

5
推荐指数
1
解决办法
719
查看次数

“选择要执行的作业...”实际上永远运行

我有一个相当复杂的工作流程,有 750 个样本和大约 18.000 个作业,一开始 Snakemake 运行得很好,但在大约 4.000 个作业之后它突然冻结,重新启动后它会挂起“选择要执行的作业...”24 小时,之后我终止了它。不过,最初的 DAG 构建大约需要 2-3 分钟。

当我使用该--verbose选项运行 Snakemake(v5.32.0 和 v5.32.1)时,我得到大量与此类似的行:

Cbc0010I After 600 nodes, 304 on tree, -52534.791 best solution, best possible -52538.194 (7.08 seconds

我试图删除该.snakemake文件夹,希望那里会发生什么事情,但不幸的是,事实并非如此。对我来说,CBC MILP 求解器似乎在某种程度上没有收敛,并且它不断前进,并将最好最好的可能解决方案更紧密地结合在一起!?

现在我不知道如何继续并解决问题。我可能的解决方案是以某种方式改变收敛标准或求解器本身。在手册中我找到了该选项--scheduler-ilp-solver,但它显然只有一个选项,即默认选项COIN_CMD

终止(较短的)运行后,我得到了这个详细的输出

Result - User ctrl-cuser ctrl-c

Objective value:                52534.79114334
Upper bound:                    52538.202
Gap:                            -0.00
Enumerated nodes:               186926
Total iterations:               1807277
Time (CPU seconds):             1181.97
Time (Wallclock seconds):       1188.11
Run Code Online (Sandbox Code Playgroud)

接下来,我将尝试限制工作流程中的样本数量,看看这是否有任何影响(对于具有 500 个样本的其他数据集,它运行没有任何问题(使用 …

solver snakemake

5
推荐指数
1
解决办法
1063
查看次数

更改Kubuntu Linux中的R默认C/C++编译器

如果安装一个需要编译的R包

R CMD INSTALL package.tar.gz

从bash开始,R默认使用gcc编译器.现在发生了我的R-package在Cran上发出一个带有'clang'编译器设置的警告,这个设置没有使用gcc编译器.

为了在我的本地机器上重现警告,我想将本地编译器设置调整为Cran-check服务器上使用的设置.

我发现应该可以通过在主文件夹中的某处创建一个Makevars.in文件来更改R默认编译器,但是我找不到它必须位于何处以及必须在那里写什么才能使R到使用'clang'启用某些警告标志而不是'gcc'.

有没有人已经开启他/她的Linux系统R默认编译器从gcc到clang并且可以给我一个提示如何做到这一点?

linux gcc r clang

3
推荐指数
1
解决办法
2918
查看次数

标签 统计

r ×5

awk ×1

bash ×1

clang ×1

cran ×1

dataframe ×1

deprecated ×1

gcc ×1

linux ×1

r-package ×1

sed ×1

snakemake ×1

solver ×1

string ×1

unix ×1