这是我目前正在做的,它有效,但它有点麻烦:
x = np.matrix([[1, 1], [2, -3]])
xmax = x.flat[abs(x).argmax()]
Run Code Online (Sandbox Code Playgroud) 以下是docs网站的代码段:
# Generate data
library(reshape2) # for melt
volcano3d <- melt(volcano)
names(volcano3d) <- c("x", "y", "z")
# Basic plot
v <- ggplot(volcano3d, aes(x, y, z = z))
v + stat_contour(binwidth = 10)
Run Code Online (Sandbox Code Playgroud)
输出:

如果我想在自定义级别绘制轮廓线怎么办?例如,在volcano3d数据集中,我希望这些级别表示:z == 120,140,160.
我想学习一些关于生锈任务的知识,所以我做了一个蒙特卡罗计算PI.现在我的难题是为什么单线程C版本比4路线程Rust版本快4倍.显然,我做错了什么,或者我的心理表现模型已经过时了.
这是C版本:
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
#include <stdio.h>
#define PI 3.1415926535897932
double monte_carlo_pi(int nparts)
{
int i, in=0;
double x, y;
srand(getpid());
for (i=0; i<nparts; i++) {
x = (double)rand()/(double)RAND_MAX;
y = (double)rand()/(double)RAND_MAX;
if (x*x + y*y < 1.0) {
in++;
}
}
return in/(double)nparts * 4.0;
}
int main(int argc, char **argv)
{
int nparts;
double mc_pi;
nparts = atoi(argv[1]);
mc_pi = monte_carlo_pi(nparts);
printf("computed: %f error: %f\n", mc_pi, mc_pi - PI);
}
Run Code Online (Sandbox Code Playgroud)
Rust版本不是逐行端口:
use std::rand;
use std::rand::distributions::{IndependentSample,Range}; …Run Code Online (Sandbox Code Playgroud) 在Linux上通常$HOME/R/...,它在Mac上的位置?
我试过类似的东西locate Rcpp,但没有得到任何有用的信息.
R通过自制软件安装,OSX版本为10.9(小牛).
我发现这个变量有点令人困惑,例如,来自文档:
require(ggplot2)
require(reshape2)
volcano3d <- melt(volcano)
names(volcano3d) <- c("x", "y", "z")
v <- ggplot(volcano3d, aes(x, y, z = z))
v1 = v + stat_contour(aes(colour=..level..,size=..level..))
Run Code Online (Sandbox Code Playgroud)
为什么我不能用这个:
v2 = v + stat_contour(aes(colour=as.factor(z),size=as.factor(z)))
Run Code Online (Sandbox Code Playgroud) 我在rJava上关注本教程:http://cran.r-project.org/web/packages/helloJavaWorld/vignettes/helloJavaWorld.pdf
我已经制作了教程中指定的所有文件并安装了helloJavaWorld包,但是一旦我运行了helloJavaWorld()函数,就会抱怨:
> helloJavaWorld()
Error in .jnew("HelloJavaWorld") :
java.lang.UnsupportedClassVersionError: HelloJavaWorld : Unsupported major.minor version 52.0
Run Code Online (Sandbox Code Playgroud)
所以我试着检查rJava正在使用的java版本:
.jinit()
jvm = .jnew("java.lang.System")
jvm.props = jvm$getProperties()$toString()
jvm.props <- strsplit(gsub("\\{(.*)}", "\\1", jvm.props), ", ")[[1]]
jvm.props
[1] "java.runtime.name=Java(TM) SE Runtime Environment"
[2] "sun.boot.library.path=/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Libraries"
[3] "java.vm.version=20.65-b04-466.1"
[4] "awt.nativeDoubleBuffering=true"
[5] "gopherProxySet=false"
[6] "mrj.build=11M4716"
[7] "java.vm.vendor=Apple Inc."
[8] "java.vendor.url=http://www.apple.com/"
[9] "path.separator=:"
[10] "java.vm.name=Java HotSpot(TM) 64-Bit Server VM"
[11] "file.encoding.pkg=sun.io"
[12] "user.country=US"
[13] "sun.os.patch.level=unknown"
[14] "java.vm.specification.name=Java Virtual Machine Specification"
[15] "user.dir=/private/tmp"
[16] "java.runtime.version=1.6.0_65-b14-466.1-11M4716"
[17] "java.awt.graphicsenv=apple.awt.CGraphicsEnvironment"
[18] "java.endorsed.dirs=/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib/endorsed" …Run Code Online (Sandbox Code Playgroud) 我testthat用来测试包含类似于以下文件树的包:
.
??? data
? ??? testhaplom.out
??? inst
? ??? test
? ??? test1.r
? ??? tmp_S7byVksGRI6Q
? ? ??? testm.desc
? ??? tmp_vBcIkMN1arbn
? ???testm.bin
? ??? testm.desc
??? R
? ??? haplom.r
? ??? winIdx.r
??? tmp_eUG3Qb0PKuiN
??? testhaplom.hap2.desc
Run Code Online (Sandbox Code Playgroud)
在test1.r文件中,我需要使用该data/testhaplom.out文件作为某个函数的输入数据,但如果我这样做test_file(test1.r),它将更改为inst/test目录并且无法查看数据文件,给出以下错误:
...Error in file(file, "rt") : cannot open the connection
In addition: Warning message:
In file(file, "rt") :
cannot open file 'data/testhaplom.out': No such file or directory
Run Code Online (Sandbox Code Playgroud) 这是代码:
mf = function(..., expr) {
expr = substitute(expr)
print(class(expr))
print(str(expr))
expr
}
mf(a = 1, b = 2, expr = {matrix(NA, 4, 4)})
Run Code Online (Sandbox Code Playgroud)
输出:
[1] "{"
length 2 { matrix(NA, 4, 4) }
- attr(*, "srcref")=List of 2
..$ :Class 'srcref' atomic [1:8] 1 25 1 25 25 25 1 1
.. .. ..- attr(*, "srcfile")=Classes 'srcfilecopy', 'srcfile' <environment: 0x7fbcdbce3860>
..$ :Class 'srcref' atomic [1:8] 1 26 1 41 26 41 1 1
.. .. ..- attr(*, "srcfile")=Classes 'srcfilecopy', …Run Code Online (Sandbox Code Playgroud) 当我在R中使用包来加载数据时遇到了这个错误,在这个包rJava中使用了pakcage .
每次运行函数时,错误都是
Error in ls(envir = envir, all.names = private) :
invalid 'envir' argument
Run Code Online (Sandbox Code Playgroud)
这个包已被证明没有任何问题,只是我的电脑中的一些环境问题.
当我调试时,我发现在ls(envir=envir?all.names = private )
变量之前的最后一个进程
envir中NULL,我认为应该是一些值但不是NULL.
经过一些试验,我通过rJava每次安装来解决问题.另外,只有当错误出现时,我才会安装'rJava',它会起作用.如果我在第一次安装,它将无法正常工作.所以,我想,安装'rJava'(或者可能正在安装包)会导致一些环境变量发生变化.
Java 7和Java 8(包括jdk或jre)都经过测试,不起作用.对于R,我使用3.1.3 R并且所有包都是最新的.
以下是我认为可能对故障排除有用的一些信息.
通过安装包,jvm.dll needs to be added to the windows environment path: "Path"我做到了.
我的sessionInfo如下所示:
R version 3.1.3 (2015-03-09)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 7 x64 (build 7601) Service Pack 1
locale:
[1] LC_COLLATE=Danish_Denmark.1252 LC_CTYPE=Danish_Denmark.1252 LC_MONETARY=Danish_Denmark.1252 LC_NUMERIC=C
[5] LC_TIME=Danish_Denmark.1252
attached base packages:
[1] grid …Run Code Online (Sandbox Code Playgroud) 在vim中,你可以通过vi",vi [,vi(...
例如,如果您有这样的行:
x = "difference between vim and emacs"
Run Code Online (Sandbox Code Playgroud)
并且光标位于这些引号之间的任何位置,并且您点击了"vi",然后将在视觉上选择该字符串.