Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用R进行基因表达数据集分析_R_Machine Learning_Bigdata - Fatal编程技术网

如何使用R进行基因表达数据集分析

如何使用R进行基因表达数据集分析,r,machine-learning,bigdata,R,Machine Learning,Bigdata,我们的数据集由超过100个样本收集的50K+基因表达组成。此csv文件的大小仅为70MB。在R local上运行会在下面第6行出现错误:“无法分配大小为22gb的向量”。这是编写的代码: data=as.matrix(read.table("geneExp.csv.csv", row.names = 1, header =T, sep = ',')) logdata=log2(data) t_logdata=t(logdata) output=/* the output label vector

我们的数据集由超过100个样本收集的50K+基因表达组成。此csv文件的大小仅为70MB。在R local上运行会在下面第6行出现错误:“无法分配大小为22gb的向量”。这是编写的代码:

data=as.matrix(read.table("geneExp.csv.csv", row.names = 1, header =T, sep = ','))
logdata=log2(data)
t_logdata=t(logdata)
output=/* the output label vectors 0 or 1 */
library(MASS)
lda.fit=lda(output~., data=as.data.frame(t_logdata), CV=TRUE)
summary(lda.fit)
LDA作为一种降维方法进行了尝试,仅用于实验目的。这是数据的快照:-行是基因,列是样本。
我们找不到一篇关于编写R代码(例如使用cloudml_train(file=“train.R”)的综合在线文章,该文章在云上运行。我们已经尝试从rstudio使用cloudml,但退出时出现了错误。也许这段代码不适合在cloudml上运行?是否应将其更改为tensorflow代码?在云上运行LDA模型的示例会有所帮助。谢谢

不是一个完整的答案,而是一个探索的建议(太长/格式不适合评论)。我拼凑了一个函数,在一个简单的合成数据集上运行LDA,只是想知道可以做些什么(我在Linux VM机器上运行这个函数时使用了“无法分配大小的向量”表示机器的RAM不足,无法满足您的需要。您的数据集似乎没有那么大,但我不确定
lda
需要哪些资源。此外,您的代码正在从数据帧转换
数据(读取.table
的输出)这是浪费和不必要的。谷歌搜索“线性判别分析R内存”提出。我不知道它是否有用,但对于有关特定编程问题的问题也是如此-而不是对于要求指向教程材料的指针的请求…@BenBolker,当然,很抱歉。我已经相应地编辑了这个问题。@neilfws谢谢。是的,数据集只有几MB。感谢代码审阅评论。这很有帮助,但我担心这个问题仍然很模糊/宽泛。如果你已经尝试过并且遇到了问题,为什么不编辑你的问题并提供具体的细节呢?有一些关于LDA记忆强度的信息。
f <- function(nr=200,nc=1e3,seed=101) {
    set.seed(seed)
    grouping <- rbinom(nr,size=1,prob=0.2)
    x <- matrix(rnorm(nr*nc),nrow=nr)
    m <- MASS::lda(x=x,grouping=grouping)
    return(m)
}

system.time(m0 <- f())     ## 1 second
system.time(m0 <- f(5e3))  ## 30 seconds
system.time(m0 <- f(8e3))  ## 48 seconds
system.time(m0 <- f(25e3)) ## 163 seconds