这是我上一篇文章here的扩展。
我在R工作。
总而言之,我的向量很大(13 be ),但它们不应该很大。原始csv文件是该大小的一小部分。正如您可以想象的那样,13 R.的内存比我的机器的内存要多一点,别管分配给R的是什么。
我目前正在编写的代码是:
data1<-read.csv("stackexample.csv") ##read in dummy data
data1C<- data1[,3:13] #cut off the ends
SvDvDis<-data1C[c(-3,-4,-6,-7,-9,-10,-11)] #drop individual columns
attach(ScDcDis) #attach for simplicity sake
sm.ancova(s,dt,dip,model="none") #non-parametric ANCOVA可以在my dropbox上找到虚拟数据文件。
有没有办法减少这个函数使用的内存,或者有没有替代的编码/函数以较少的内存密集型方式执行相同的分析(非参数ANCOVA)?先说清楚,不是问统计数据。我想问的是如何以一种更高效的内存方式来做到这一点。
发布于 2016-10-13 07:54:46
这是我的建议,它在我不起眼的笔记本上运行得很好。你可以用均值检验来补充它,以确保样本能够充分反映总体。
data1 <- read.csv("stackexample.csv") ##read in dummy data
library(dplyr)
library(sm)
data2 <- sample_n(data1, 10000) # make statistics work for you -- sample the data
sm.ancova(x = data2$s,
y = data2$dt,
group = data2$dip,
model = "none") #non-parametric ANCOVA

即使只有1000个样本,我也没有发现任何显着的均值差异。
t.test(data1$s, data2$s)以5000个样本为例:
data2 <- sample_n(data1, 5000) # make statistics work for you -- sample the data
t.test(data1$s, data2$s)两个样本t检验数据: data1$s和data2$s t= -1.0653,df = 5513.7,p值= 0.2868备选假设:均值的真实差异不等于0.95%置信区间:-14.736700 4.359704样本估计:y 125.3137 130.5022的x均值的均值
t.test(data1$dt, data2$dt)t.test(data1$dip, data2$dip)当然,您可以使用more/difference统计信息来验证您的样本,这取决于您想要将它带到什么程度。您还可以预先估计功率曲线,以确定样本大小。
对于10,000个样本,在我的笔记本电脑上大约需要3分钟才能完成。对于1000个样本,它立即完成。
https://stackoverflow.com/questions/40009965
复制相似问题