小编And*_*rau的帖子

计算重R的小插曲

我目前正在将一篇JSS文章转换knitr为一个R 包小插图.但是,我对插图的位置,结构和我应该如何处理所需的非常长的计算时间有疑问,这在普通笔记本电脑上需要大约2天.

官方文件提供几乎对此没有任何信息.邮件列表中的答案中的简短注释是我在搜索时找到的唯一信息.Brian Ripley在这里写道:

特别是,CRAN确实接受带有Sweave小插图的包裹,这些小插曲需要很长时间才能检查 - 一个需要大约8个小时[...].我们只是要求在提交时告知我们.

哈德利威克姆对小插曲的描述eval = FALSE是一个大块的选择.但是,在我的情况下,这不是一种可行的方法,因为需要从计算中生成数据.

此演示文稿表明,/inst/doc将用于预编译和重型小插曲.但是,这与使用/vignettes包装晕影的新指南(或什么?)不太一致.

目前,我已经放置了我的源文件,/vignettes并且我创建了一个.RData文件,其中包含计算量最大的对象(并且也非常大).然后脚本检查对象是否可通过该.RData文件获得,如果没有,则创建对象.因此,从头开始完全编译和运行,.RData可以简单地删除该文件.

有没有人对这个问题有一些经验或指示?小插图应该在/vignettes/inst/doc?如果是前者是首选,我在哪里放置所需的文件,如.bib,.RData等?我必须承认我发现/vignettesvs /inst/doc有些令人困惑.

packages r cran knitr

10
推荐指数
1
解决办法
3398
查看次数

R参考类中的非标准集函数

是否有可能获得语法

foo$bar(x) <- value
Run Code Online (Sandbox Code Playgroud)

工作在哪里foo是一个引用类对象,bar是一个方法?即是可以做"子集分配"并将"替换函数"作为参考类中的方法吗?

是否可以使用其他OO系统获得语法?

示例: 我将用一个用例说明.想象一个引用类,Person它包含一个人的一些基本信息.特别是,一个叫做的字段fullname名为list:

PersonRCGen <- setRefClass("Person",
                           fields = list(
                             fullname = "list",
                             gender = "character"
                           ))
Run Code Online (Sandbox Code Playgroud)

接下来,我们应该定义一些方法来获取和设置fullnames列表中的特定名称(尝试)给出上面的语法/接口.到目前为止,我最好的尝试是:

PersonRCGen$methods(
  name = function(x) { # x is the dataset,
    .self$fullname[[x]]
  },
  `name<-` = function(x, value) {
    .self$fullname[[x]] <- value
  }
)
Run Code Online (Sandbox Code Playgroud)

这里的命名也应该说明我正在尝试做什么.

我们初始化一个新对象:

a_person <- PersonRCGen$new(fullname = list(first = "Jane", last = "Doe"),
                            gender = "F")
Run Code Online (Sandbox Code Playgroud)

fullname直接访问字段并通过定义的get函数访问名字和姓氏按预期工作:

a_person$fullname
#$`first`
#[1] "Jane"
# 
#$last
#[1] …
Run Code Online (Sandbox Code Playgroud)

r reference-class

10
推荐指数
1
解决办法
152
查看次数

使用Brainarray定制CDF对GSE31312的RMA标准化中的所有NaN进行标准化

我正在尝试使用来自Brainarray的定制基因水平注释CDF(芯片定义文件)文件,使关于弥漫性大B细胞淋巴瘤的特定基因表达数据集正常化.

不幸的是,RMA归一化表达式矩阵是所有NaNs,我不明白为什么.

数据集(GSE31312)可在GEO网站免费获取,并使用Affymetrix HG-U133 Plus 2.0阵列平台.我正在使用该affy包来执行RMA规范化.

由于问题是特定于数据集的,因此遗憾的是,以下用于重现问题的R代码非常麻烦(2 GB下载,8.8 GB解压缩).

设置工作目录.

setwd("~/Desktop/GEO")
Run Code Online (Sandbox Code Playgroud)

加载所需的包.取消注释以安装软件包.

#source("http://bioconductor.org/biocLite.R")
#biocLite(pkgs = c("GEOquery", "affy", "AnnotationDbi", "R.utils"))
library("GEOquery") # To automatically download the data
library("affy")
library("R.utils") # For file handling
Run Code Online (Sandbox Code Playgroud)

将阵列数据下载到工作目录.

files <- getGEOSuppFiles("GSE31312")
Run Code Online (Sandbox Code Playgroud)

解压缩名为CEL的目录中的数据

#Sys.setenv(TAR = '/usr/bin/tar') # For (some) OS X uncommment this line
untar(tarfile = "GSE31312/GSE31312_RAW.tar", exdir = "CEL")
Run Code Online (Sandbox Code Playgroud)

解压缩所有.gz文件

gz.files <- list.files("CEL", pattern = "\\.gz$", 
                       ignore.case = TRUE, full.names = TRUE)
for (file in …
Run Code Online (Sandbox Code Playgroud)

r bioinformatics normalization bioconductor

7
推荐指数
0
解决办法
738
查看次数

使用aes_string时,格式geom_text标签不起作用

我使用点函数来格式化创建的图中的文本标签ggplot2.这在使用时工作正常aes,但在使用时不能像预期的那样工作aes_string.是否有解决方法使其适用aes_string

require(ggplot2)

# Define the format function
dot <- function(x, ...) { 
  format(x, ..., big.mark = ".", scientific = FALSE, trim = TRUE)
}

# Create dummy data
df <- data.frame(cbind(levels(iris$Species),c(10000000000,200000,30000)))
df$X2 <- as.numeric(as.character(df$X2))

# Works with aes   
ggplot(iris) + 
  geom_bar(aes(Species,Sepal.Width),stat="identity") +     
  geom_text(data=df,aes(x=factor(X1),y=180,label=dot(X2)))


# Doesn't work with aes_string
ggplot(iris) + 
  geom_bar(aes(Species,Sepal.Width),stat="identity") +
  geom_text(data=df,aes_string(x="X1",y=180,label=dot("X2")))
Run Code Online (Sandbox Code Playgroud)

r ggplot2

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

在Rstudio编辑器中暂存和放弃选择的按钮不起作用

我有一个问题,我无法使用在Rstudio git审阅更改中选择特定行时出现的“阶段行/选择”和“放弃行/选择”按钮。按下时,选择消失,什么也没有发生。

为了说明这一点,假设我有一个文件,其中进行了一些添加和删除:


没有选择


请注意,右侧的“阶段数据块”和“丢弃数据块”按钮将按预期工作。

现在,假设我希望仅暂存并提交添加的行(代码注释)。我首先选择以下行:


选择附加


但是,选择两个按钮中的任何一个,都会保留选择的第一行,并且不会暂存任何内容:


结果


同样,如果为剩下的单行选择按下“阶段组块”或“丢弃组块”,则什么也不会发生。

这个问题似乎有点断断续续。我的经验是,如果我进行了许多“复杂”的更改,这种情况经常发生。编辑几行不会导致此问题。通过搜索,我仅找到建议避免在文件中留空格(我没有)。

git r rstudio

5
推荐指数
0
解决办法
87
查看次数

使用插入符号指定交叉验证折叠

您好,并提前致谢.我正在使用caretnnet包中交叉验证神经网络.在函数的method参数中,trainControl我可以指定交叉验证类型,但所有这些都随机选择观察结果以进行交叉验证.无论如何,我可以使用插入符号通过ID或硬编码参数来交叉验证我的数据中的特定观察结果吗?例如,这是我当前的代码:

library(nnet) 
library(caret) 
library(datasets) 

data(iris) 

train.control <- trainControl( 
    method = "repeatedcv" 
    , number = 4 
    , repeats = 10 
    , verboseIter = T 
    , returnData = T 
    , savePredictions = T 
    ) 

tune.grid <- expand.grid( 
    size = c(2,4,6,8)
    ,decay = 2^(-3:1) 
    ) 

nnet.train <- train( 
    x = iris[,1:4] 
    , y = iris[,5] 
    , method = "nnet" 
    , preProcess = c("center","scale")  
    , metric = "Accuracy" 
    , trControl = train.control 
    , tuneGrid = tune.grid …
Run Code Online (Sandbox Code Playgroud)

r neural-network cross-validation nnet r-caret

4
推荐指数
1
解决办法
2083
查看次数