小编gap*_*ppy的帖子

qr.Q()神秘化:什么是"紧凑"形式的正交矩阵?

R有一个qr()函数,它使用LINPACK或LAPACK执行QR分解(根据我的经验,后者的速度提高了5%).返回的主要对象是包含在上三角矩阵R(即R=qr[upper.tri(qr)])中的矩阵"qr" .到现在为止还挺好.qr的下三角部分包含Q"紧凑形式".一个可以通过使用提取QR分解Q qr.Q().我想找到倒数qr.Q().换句话说,我确实有Q和R,并希望将它们放在"qr"对象中.R是微不足道的,但Q不是.目标是应用它qr.solve(),这比solve()在大型系统上快得多.

r linear-algebra blas lapack

18
推荐指数
1
解决办法
3881
查看次数

您何时想在R中设置新环境?

根据对R编程风格的讨论,我看到有人曾经说他将所有自定义函数放入一个新环境并附加它.我还记得R环境可能用作哈希表.这是好风格吗?您希望何时将数据/功能置于新的环境中?或者只是使用.GlobalEnv什么?

编辑提出了我的第二部分问题:如何检查不同环境的同名变量?

r

18
推荐指数
2
解决办法
590
查看次数

R中的压缩列表

作为指导,我更喜欢使用lapply或*ply(来自plyr)在列表元素上应用函数,而不是显式迭代它们.但是,当我必须一次处理一个列表时,这很有效.当函数接受多个参数时,我通常会进行一个循环.

我想知道是否有可能有一个更清洁的结构,仍然是功能性的.一种可能的方法是定义一个类似于Python的函数zip(x,y),它接受输入列表,并返回一个列表,其第i个元素是list(x,y),然后将该函数应用于这个清单.但我的问题是我是否使用最干净的方法.我并不担心性能优化,而是清晰/优雅.

以下是天真的例子.

        A <- as.list(0:9)
        B <- as.list(0:9)
        f <- function(x, y) x^2+y

        OUT <- list()
        for (n in 1:10) OUT[[n]] <- f(A[[n]], B[[n]])
        OUT
        [[1]]
        [1] 0

        [[2]]
        [1] 2

        ...
Run Code Online (Sandbox Code Playgroud)

这是压缩的示例(可以扩展到任意参数):

zip <- function(x, y){
    stopifnot(length(x)==length(y))
    z <- list()
    for (i in seq_along(x)){
        z[[i]] <- list(x[[i]], y[[i]]) 
    }
    z
}
E <- zip(A, B)

lapply(E, function(x) f(x[[1]], x[[2]]))

[[1]]
[1] 0

[[2]]
[1] 2

 ...
Run Code Online (Sandbox Code Playgroud)

r plyr lapply

16
推荐指数
1
解决办法
5375
查看次数

丢失ggplot中的灰色边距填充

A想要绘制geom_tile()而不显示周围的灰色框架.例:

library(ggplot2)
p <- ggplot(melt(volcano), aes(x = X1, y = X2, z = value,fill = value)) + geom_tile() 
print(p)
Run Code Online (Sandbox Code Playgroud)

产生下图,如果没有主题背景框架热图,那将会更好看.我对填充的成像与基本图形相同,为4%.大多数时候都很好,但并非总是如此.

我假设这个问题的相同解决方案也可以应用于其他geoms. 热图

graphics r ggplot2

15
推荐指数
1
解决办法
3210
查看次数

在Jython中使用NumPy和Cpython

必须使用商业Java库,并希望从Python中完成.Jython很强大,我很好,因为它背后有一些点发布.但是,我也想使用NumPy,这显然不适用于Jython.CPype和Java数字库之类的选项没有吸引力.前者基本上死了.后者大多不成熟,缺乏易用性和广泛接受NumPy.我的问题是:如何让Jython和Python代码互操作?我可以接受从Cpython或其他方式调用Jython.

python java numpy jython cpython

14
推荐指数
2
解决办法
2万
查看次数

R中列表的交集

是否有接收列表的功能x,并返回一个列表y,以便y[[i]] = intersect(x[[1]][[i]], x[[2]][[i]], ...)

如果没有,是否有R方式在几行中编码?

r list set-intersection

14
推荐指数
2
解决办法
9033
查看次数

R或Python的分层贝叶斯

分层贝叶斯模型常用于市场营销,政治科学和计量经济学.然而,我所知道的唯一方案是bayesm,它实际上是一本书的伴侣(Rossi等人的贝叶斯统计与市场营销)我错过了什么?是否有用于R或Python的软件包在那里完成工作,和/或相关语言中的一个成熟的例子?

python statistics r

12
推荐指数
2
解决办法
8029
查看次数

R中最快的高宽旋转

我正在处理一个简单的表格表

date         variable   value
1970-01-01   V1         0.434
1970-01-01   V2         12.12
1970-01-01   V3         921.1
1970-01-02   V1         -1.10
1970-01-03   V3         0.000
1970-01-03   V5         312e6
...          ...        ...
Run Code Online (Sandbox Code Playgroud)

对(日期,变量)是唯一的.我想把这张桌子变成一张宽大的桌子.

date         V1         V2         V3         V4         V5        
1970-01-01   0.434      12.12      921.1      NA         NA
1970-01-02   -1.10      NA         NA         NA         NA
1970-01-03   0.000      NA         NA         NA         312e6
Run Code Online (Sandbox Code Playgroud)

我想以最快的方式做到这一点,因为我必须在具有1e6记录的表上重复操作.在R本机模式中,我相信这两者tapply(),reshape()并且d*ply()在速度方面占主导地位data.table.我想针对基于sqlite的解决方案(或其他数据库)测试后者的性能.以前做过吗?是否有性能提升?并且,当"宽"字段(日期)的数量可变且事先不知道时,如何在sqlite中从高到宽进行转换?

sqlite r plyr reshape data.table

12
推荐指数
1
解决办法
1237
查看次数

R中用户定义函数的公式

公式是R统计和图形函数的一个非常有用的特性.像所有人一样,我是这些功能的用户.但是,我从未编写过将公式对象作为参数的函数.我想知道是否有人可以通过链接到R编程的这一方面的可读介绍,或通过提供一个自包含的示例来帮助我.

r formula

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

R中的并行R执行问题

我在Windows 7中使用doSMP作为并行后端,使用R 2.12.2.我发生错误,并想了解可能的原因.下面是一些重现错误的示例代码.

require(foreach)
require(doSMP)
require(data.table)
wrk <- startWorkers(workerCount = 2)
registerDoSMP(wrk)
DF = data.table(x=c("b","b","b","a","a"),v=rnorm(5))
setkey(DF,x)
foreach( i=1:2)  %dopar% {
    DF[J("a"),]
}
Run Code Online (Sandbox Code Playgroud)

错误消息是

Error in { : task 1 failed - "could not find function "J""
Run Code Online (Sandbox Code Playgroud)

parallel-processing r

9
推荐指数
2
解决办法
3906
查看次数