在使用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) 这是一个非常小的问题,但我想了解到底发生了什么.
说我做以下事情:
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的警告.我以为我已经破坏了那些.到底是怎么回事?如何彻底清除工作区?
在ESS中,当我使用Cc Cj或Cc Cr评估.R文件中的代码块(将行或区域发送到正在运行的R进程)时,如何让R缓冲区自动向下滚动,这样在评估之后光标位于底部的区域,在提示符处?
谢谢.
我经常想做以下几点:
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的范围规则阻止了这个?
我有以下,有点大的数据集:
> 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核机器上.我究竟做错了什么?
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) 我正在寻找像'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.如何根据转换矩阵模拟马尔可夫链?
谢谢,
我经常发现自己处于以下情况.假设我正在使用此内容编辑文件
\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这样的命令能够重新回顾它的位置历史?
谢谢,
我正在研究我的第一个大型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产品?它似乎不应该花费很长时间.
我有一个命令,执行时间不到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中这样做?