小编Fed*_*rgi的帖子

R的革命

自从最新的Ubuntu版本(karmic koala)以来,我注意到内部R包在启动REvolution包时做广告.它似乎是用于高性能矩阵计算的库集合.而且它显然确实有效.例如,在带有REvolution的矩阵转置上:

> system.time(t(matrix(rnorm(10000000),ncol=1000)))
   user  system elapsed 
  1.280   0.150   1.556 
Run Code Online (Sandbox Code Playgroud)

没有革命:

> system.time(t(matrix(rnorm(10000000),ncol=1000)))
   user  system elapsed 
  1.320   0.170   1.725 
Run Code Online (Sandbox Code Playgroud)

有人用吗?它真的有效吗?哪种具体类型的计算有所改进?如何?有什么缺点?

谢谢 :-)

r mathematical-packages

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

Java中的高效Fisher精确测试

我需要一个库/函数/方法来在Java中执行Fisher精确测试,并提供右,左和双尾概率.简单的谷歌搜索在Tassel的软件包中显示了一个解决方案,但内部方法只是在没有优化的情况下应用测试步骤,因此它非常慢.而且,它在任何地方都使用int类型,对于大型列联表来说并不是真正有效.

如果您知道任何已编写的解决方案,请帮助我:-)

java statistics

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

R中的Boxplot异常值标记

我想在R中绘制箱图并为异常值添加名称.到目前为止,我发现了这个解决方案.

那里的功能提供了我需要的所有功能,但它不正确地标记标签.在以下示例中,它将异常值标记为"u"而不是"o":

library(plyr)
library(TeachingDemos)
source("http://www.r-statistics.com/wp-content/uploads/2011/01/boxplot-with-outlier-label-r.txt") # Load the function
set.seed(1500)
y <- rnorm(20)
x1 <- sample(letters[1:2], 20,T)
lab_y <- sample(letters, 20)
# plot a boxplot with interactions:
boxplot.with.outlier.label(y~x1, lab_y)
Run Code Online (Sandbox Code Playgroud)

你知道任何解决方案吗?ggplot2库非常好,但没有提供这样的功能(据我所知).我的替代方法是使用text()函数并从boxplot对象中提取异常值信息.但是,像这样标签可能会重叠.

非常感谢 :-)

r

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

如何为嵌套矩阵匹配和colSums加快R中的for循环

我有一个看似很简单的问题,与之相比,我需要更快的R实现。

我为此示例初始化随机种子和尺寸:

set.seed(1)
d1<-400
d2<-20000
d3<-50
Run Code Online (Sandbox Code Playgroud)

我有一个矩阵X,尺寸为d1 x d2

X<-as.data.frame(matrix(rnorm(d1*d2),nrow=d1,ncol=d2))
rownames(X)<-paste0("row",1:nrow(X))
colnames(X)<-paste0("col",1:ncol(X))
Run Code Online (Sandbox Code Playgroud)

以及具有d1行索引的向量u :

u<-sample(rownames(X),nrow(X),replace=TRUE)
Run Code Online (Sandbox Code Playgroud)

我也有一个矩阵C,其命名的行和尺寸为d3 x d2

C<-matrix(rnorm(d3*d2),nrow=d3,ncol=d2)
rownames(C)<-sample(rownames(X),nrow(C),replace=FALSE)
Run Code Online (Sandbox Code Playgroud)

现在,通过以下非常慢的循环,我用匹配的X行的总和填充矩阵C:

system.time(
    for(i in 1:nrow(C)){
        indexes<-which(u==rownames(C)[i])
        C[i,] <- colSums(X[indexes,])
    }
)
Run Code Online (Sandbox Code Playgroud)

在我的PC上,此操作大约需要11.5秒,但是我确信可以通过避免for循环来加快速度。有任何想法吗?非常感谢!

performance for-loop r

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

返回列表,包含向量中每个元素的索引

我在R中有一个包含重复元素的向量

a<-c("A","A","A","B","B","C","A")
Run Code Online (Sandbox Code Playgroud)

我想知道在列表中转换它的最有效方法,其中每个元素都是键,它在原始向量中的位置是值:

l<-list(A=c(1,2,3,7),B=c(4,5),C=c(6))
l
$A
[1] 1 2 3 7
$B
[1] 4 5
$C
[1] 6
Run Code Online (Sandbox Code Playgroud)

r

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

减少R中向量元素的总和

在R中,我有一个整数向量.从这个向量,我想随机减少每个整数元素的值,以获得向量的总和,该向量是初始总和的百分比.

在这个例子中,我想将向量"x"减少为向量"y",其中每个元素已被随机减少以获得等于初始和的50%的元素之和.

生成的矢量应具有非负值且低于原始值的值.

set.seed(1)
perc<-50            
x<-sample(1:5,10,replace=TRUE)
xsum<-sum(x) # sum is 33
toremove<-floor(xsum*perc*0.01)
x # 2 2 3 5 2 5 5 4 4 1

y<-magicfunction(x,perc)
y # 0 2 1 4 0 3 2 1 2 1
sum(y) # sum is 16 (rounded half of 33)
Run Code Online (Sandbox Code Playgroud)

你能想到办法吗?谢谢!

r

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

R error allocMatrix

大家好,

我试图加载一定数量的Affymetrix CEL文件,使用标准的BioConductor命令(64位linux上的R 2.8.1,72 GB的RAM)

abatch<-ReadAffy()
Run Code Online (Sandbox Code Playgroud)

但我不断收到这条消息:

Error in read.affybatch(filenames = l$filenames, phenoData = l$phenoData,  : 
  allocMatrix: too many elements specified
Run Code Online (Sandbox Code Playgroud)

这个allocMatrix错误的一般含义是什么?有没有办法增加其最大尺寸?

谢谢

r bioconductor

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

用于空间模拟器的OpenGL

和几个朋友一起,我们开始了这个独立于业余平台的基于Java的项目,用于太空作战模拟器游戏(类似于翼指挥官的长期死亡传奇).我们都不是3D程序员,所以道路将会很长.

我的问题是:在我们的位置你会开始学习OpenGL(可能是通过GLUT)还是今天有更好的可能性?那么Direct3D呢?你可以建议的任何书籍?我们特别订购了一对夫妇

  • Dave Shriner的OpenGL编程指南
  • Luke Benstead的初学OpenGL游戏编程

java opengl 3d glut direct3d

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

读取R中的文本文件并将其转换为字符对象

我在R 2.10.0中正在阅读这样的文本文件

248585_at   250887_at   245638_s_at AFFX-BioC-5_at
248585_at   250887_at   264488_s_at 245638_s_at AFFX-BioC-5_at  AFFX-BioC-3_at  AFFX-BioDn-5_at
248585_at   250887_at
Run Code Online (Sandbox Code Playgroud)

使用命令集群<-read.delim("test",sep ="\ t",fill = TRUE,header = FALSE)

现在,我必须将此文件中的每一行传递给BioConductor函数,该函数仅将字符向量作为输入.我的问题是在这个"集群"对象上使用"as.character"会将所有内容转换为数字字符串.

> clusters[1,]
         V1        V2          V3             V4 V5 V6 V7
1 248585_at 250887_at 245638_s_at AFFX-BioC-5_at         
Run Code Online (Sandbox Code Playgroud)

> as.character(clusters[1,])
[1] "1" "1" "2" "3" "1" "1" "1"
Run Code Online (Sandbox Code Playgroud)

有没有办法保留原始名称并将它们放入字符向量中?

也许它会有所帮助:"read.delim"文件给出的"cluster"对象属于"list"类型.

非常感谢 :-)

费德里科

types r

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

在Sweave中的R代码

我正在审查一篇科学论文,裁判要求我的R代码作为Sweave文件提供.我以前从未听说过Sweave,你知道什么是更好的方法吗?

非常感谢 :-)

r literate-programming sweave

3
推荐指数
2
解决办法
1154
查看次数

从JTable排序中排除列

我有一个简单的Swing JTable和一个TableRowSorter.但是,我会从排序中排除第一列,因为我想保持它显示行号.我看不到任何东西,除了

sorter.setSortable(0, false);
Run Code Online (Sandbox Code Playgroud)

这使得列不可点击,但在单击另一列时仍然可以排序...所以快速的问题是:如何使列不被TableRowSorter排序?

谢谢!

java swing jtable

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

如何完全消除R中的利润

我在R中有一个特定的问题,它包括在绘图上的特定笛卡尔坐标处绘制文本.但是,我似乎无法完全消除R绘图画布的外边距.

例如,在尝试此代码时:

par(mar=c(0,0,0,0),oma=c(0,0,0,0))
n=100
plot(0,xaxt='n',yaxt='n',bty='n',pch='',ylab='',xlab='',xlim=c(1,n),ylim=c(0,10))
text(
        x=c(1:n),
        y=rep(5,n),
        srt=90,
        labels=paste(1:n),
        offset=0
)
Run Code Online (Sandbox Code Playgroud)

在第一个数字的左边和最后一个数字的右边,Ther总是一些空的空间.有没有办法告诉情节()请不要在绘图区周围添加任何空白区域?

任何线索将非常感激:-)非常感谢!

费德里科

graphics r

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