小编ste*_*ejb的帖子

我可以在R中使用列表作为哈希吗?如果是这样,为什么这么慢?

在使用R之前,我使用了相当多的Perl.在Perl中,我经常使用哈希,并且在Perl中通常认为哈希的查找速度很快.

例如,以下代码将填充最多10000个键/值对的散列,其中键是随机字母,值是随机整数.然后,它在该哈希中进行10000次随机查找.

#!/usr/bin/perl -w
use strict;

my @letters = ('a'..'z');

print @letters . "\n";
my %testHash;

for(my $i = 0; $i < 10000; $i++) {
    my $r1 = int(rand(26));
    my $r2 = int(rand(26));
    my $r3 = int(rand(26));
    my $key = $letters[$r1] . $letters[$r2] . $letters[$r3];
    my $value = int(rand(1000));
    $testHash{$key} = $value;
}

my @keyArray = keys(%testHash);
my $keyLen = scalar @keyArray;

for(my $j = 0; $j < 10000; $j++) {
    my $key = $keyArray[int(rand($keyLen))];
    my $lookupValue = $testHash{$key};
    print …
Run Code Online (Sandbox Code Playgroud)

perl hash r

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

rm(list = ls())不能完全清除工作区

这是一个非常小的问题,但我想了解到底发生了什么.

说我做以下事情:

library(RMySQL)
con <- dbConnect(MySQL(), host="some.server.us-east-1.rds.amazonaws.com",user="aUser", password="password", dbname="mydb")

values1 <- dbGetQuery(con,"select x,y from table1")
attach(values1)
Run Code Online (Sandbox Code Playgroud)

此时,我可以做到

rm(list=ls())

values2 <- dbGetQuery("select x,y from table1")
attach(values2)
Run Code Online (Sandbox Code Playgroud)

但附件给了我关于屏蔽x和y的警告.我以为我已经破坏了那些.到底是怎么回事?如何彻底清除工作区?

r

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

在ESS/Emacs中,如何在Cc Cj或Cc Cr之后将R进程缓冲区滚动到底部

在ESS中,当我使用Cc Cj或Cc Cr评估.R文件中的代码块(将行或区域发送到正在运行的R进程)时,如何让R缓冲区自动向下滚动,这样在评估之后光标位于底部的区域,在提示符处?

谢谢.

emacs r ess

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

可以lapply不修改更高范围内的变量

我经常想做以下几点:

mat <- matrix(0,nrow=10,ncol=1)
lapply(1:10, function(i) { mat[i,] <- rnorm(1,mean=i)})
Run Code Online (Sandbox Code Playgroud)

但是,我希望mat里面会有10个随机数,但它有0个.(我并不担心rnorm部分.显然有一种正确的方法可以做到这一点.我担心会影响mat lapply的匿名函数)我可以不从lapply里面影响矩阵垫吗?为什么不?是否有R的范围规则阻止了这个?

r function lapply

15
推荐指数
2
解决办法
5837
查看次数

我使用普利尔吗?我好像在用太多的记忆

我有以下,有点大的数据集:

 > dim(dset)
 [1] 422105     25
 > class(dset)
 [1] "data.frame"
 > 
Run Code Online (Sandbox Code Playgroud)

没有做任何事情,R进程似乎需要大约1GB的RAM.

我试图运行以下代码:

  dset <- ddply(dset, .(tic), transform,
                date.min <- min(date),
                date.max <- max(date),
                daterange <- max(date) - min(date),
                .parallel = TRUE)
Run Code Online (Sandbox Code Playgroud)

运行该代码,RAM使用量猛增.它完全饱和了60GB的RAM,运行在32核机器上.我究竟做错了什么?

r plyr data.table

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

如何获得具有相同比例的多个ggplot2 scale_fill_gradientn?

library(ggplot2)
library(cumplyr)
library(scales)
library(RColorBrewer)


myPalette <- colorRampPalette(rev(brewer.pal(11, "Spectral")))

x   = 1:5
y   = 1:5
pts = cartesian_product(c('x','y'))
d1 = cbind(pts, runif(nrow(pts),min=0,max=1), 1)
d2 = cbind(pts, runif(nrow(pts),min=0,max=4), 2)
colnames(d1) = colnames(d2) = c("x","y","val","k")
d  = rbind(d1,d2)

p1 <- ggplot(d1)
p1 <- p1 + geom_tile(aes(x = x, y = y, fill = val))
p1 <- p1 + scale_fill_gradientn(colours = myPalette(4))
p1

p2 <- ggplot(d2, aes(x = x, y = y, fill = val))
p2 <- p2 + geom_tile(aes(x = x, y = …
Run Code Online (Sandbox Code Playgroud)

r ggplot2

9
推荐指数
1
解决办法
8884
查看次数

用于离散马尔可夫链仿真的R库

我正在寻找像'msm'包这样的东西,但是对于离散马尔可夫链.例如,如果我有一个如此定义的转换矩阵

Pi <- matrix(c(1/3,1/3,1/3,
0,2/3,1/6,
2/3,0,1/2))
Run Code Online (Sandbox Code Playgroud)

对于状态A,B,C.如何根据转换矩阵模拟马尔可夫链?

谢谢,

r markov-chains

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

这点可以有更长的历史

我经常发现自己处于以下情况.假设我正在使用此内容编辑文件

\begin{itemize}
\item
\end{itemize}

I really like http://stackoverflow.com !
Run Code Online (Sandbox Code Playgroud)

并且说点是在\ item之后.我想要做的是选择http ://stackoverflow.com,Cw it,然后回到\ item,然后把它拉到那里.我会做的是Cs htt,这会将点数带到http的第二个t,然后从那里我将向后,C-SPC on h,然后选择其余的单词.现在,我想使用像Cx Cx这样的东西把我带回\ item,但它会让我回到http的h.是否有一个像Cx Cx这样的命令能够重新回顾它的位置历史?

谢谢,

emacs

7
推荐指数
2
解决办法
320
查看次数

加速numpy kronecker产品

我正在研究我的第一个大型python项目.我有一个函数,其中包含以下代码:

            # EXPAND THE EXPECTED VALUE TO APPLY TO ALL STATES,
            # THEN UPDATE fullFnMat
            EV_subset_expand = np.kron(EV_subset, np.ones((nrows, 1)))
            fullFnMat[key] = staticMat[key] + EV_subset_expand                
Run Code Online (Sandbox Code Playgroud)

在我的代码分析器中,似乎这个kronecker产品实际上占用了大量的时间.

Function                                                                                        was called by...
                                                                                                    ncalls  tottime  cumtime
/home/stevejb/myhg/dpsolve/ootest/tests/ddw2011/profile_dir/BellmanEquation.py:17(bellmanFn)    <-      19   37.681   38.768  /home/stevejb/myhg/dpsolve/ootest/tests/ddw2011/profile_dir/dpclient.py:467(solveTheModel)
{numpy.core.multiarray.concatenate}                                                             <-     342   27.319   27.319  /usr/lib/pymodules/python2.7/numpy/lib/shape_base.py:665(kron)
/home/stevejb/myhg/dpsolve/ootest/tests/ddw2011/profile_dir/dpclient.py:467(solveTheModel)      <-       1   11.041   91.781  <string>:1(<module>)
{method 'argsort' of 'numpy.ndarray' objects}                                                   <-      19    7.692    7.692  /usr/lib/pymodules/python2.7/numpy/core/fromnumeric.py:597(argsort)
/usr/lib/pymodules/python2.7/numpy/core/numeric.py:789(outer)                                   <-     171    2.526    2.527  /usr/lib/pymodules/python2.7/numpy/lib/shape_base.py:665(kron)
{method 'max' of 'numpy.ndarray' objects}                                                       <-     209    2.034    2.034  /home/stevejb/myhg/dpsolve/ootest/tests/ddw2011/profile_dir/dpclient.py:391(getValPolMatrices)
Run Code Online (Sandbox Code Playgroud)

有没有办法在Numpy中获得更快的kronecker产品?它似乎不应该花费很长时间.

python numpy

7
推荐指数
1
解决办法
3161
查看次数

如何在Bash中重试命令?

我有一个命令,执行时间不到1分钟,但由于某种原因,有一个非常长的内置超时机制.我想要一些执行以下操作的bash:

success = False

try(my_command)

while(!(success))
wait 1 min
if my command not finished
     retry(my_command)
else
     success = True   
end while
Run Code Online (Sandbox Code Playgroud)

我怎么能在Bash中这样做?

bash

7
推荐指数
3
解决办法
7368
查看次数

标签 统计

r ×7

emacs ×2

bash ×1

data.table ×1

ess ×1

function ×1

ggplot2 ×1

hash ×1

lapply ×1

markov-chains ×1

numpy ×1

perl ×1

plyr ×1

python ×1