当R安装包含其他程序/库(例如hdf5,SQLite)的包时,我可以在其他程序中使用它们吗?例如,我已经hdf5.so安装了/Library/Frameworks/R.framework/Versions/2.13/Resources/library/hdf5/libs/x86_64/- 我可以使用它而不是安装hdf5供Python使用(h5py等等吗?).
numpy中是否有一个函数来确定字符串是整数还是浮点数并自动转换它们?举例来说,我经常的被使用的组合的文本文件解析记录的集合str.strip()和str.split().然后我得到类似的东西
List = [['1','a','.3'],
['2','b','-.5']]
Run Code Online (Sandbox Code Playgroud)
然后使用numpy.rec.fromrecords以下方法转换:
In [1227]: numpy.rec.fromrecords(List)
Out[1227]:
rec.array([('1', 'a', '.3'), ('2', 'b', '-.5')],
dtype=[('f0', '|S1'), ('f1', '|S1'), ('f2', '|S3')])
Run Code Online (Sandbox Code Playgroud)
在R中,有一个函数调用type.convert,传递字符串的向量/列,它将确定列的类型应该是什么(即如果它是字符串和数字的混合,它将保持字符向量).Excel也这样做(基于它的前6个元素,如果我没记错的话)......
在NumPy/Python中有这样的功能吗?我知道我可能会编写一个函数来测试列的每个元素是否可以转换为整数等,但是内置了什么?我知道在所有的例子中,处方是明确指定dtypes,但我想跳过这一步.谢谢.
我试图提取一个大型fortran的一部分,使其成为自己的程序.一个特定的子程序导入了许多模块(这里只显示了两个模块):
subroutine myroutine(aa,bb)
use xx_module
use yy_module
...
end subroutine myroutine
Run Code Online (Sandbox Code Playgroud)
...从这些模块导入的部分中引入了许多变量.有没有一种好的方法(或好的工具)来找出哪个变量来自哪个模块,等等?或者我必须查看每个模块以查看每个模块的定义,然后分配(可能出现在不同的模块中......)?
我想创建一个多面板图:
import matplotlib.pyplot as plt
fig = plt.figure()
ax1 = fig.add_subplot(2,1,1)
ax1.scatter(1,1)
ax2 = fig.add_subplot(2,1,2,sharex=ax1)
ax2.scatter(1,1)
Run Code Online (Sandbox Code Playgroud)
然后为标签创建一个单独的轴对象...
dummy = fig.add_subplot(1,1,1)
dummy.set_visible(False)
dummy.yaxis.set_label_text('y label')
dummy.yaxis.label.set_visible(True)
Run Code Online (Sandbox Code Playgroud)
但是不起作用.我想知道为什么?
例如,在MATLAB中我可能会使用lsqnonlin它来实现Levenberg-Marquardt算法.
我发现这个引用似乎是有用的开始,但是还有一种系统的方法来为Fortran找到相关的库吗?我知道IMSL是一个众所周知的,但Fortran库的一般主体不是免费的,因为它们适用于Python或R?
我尝试过以下语法:
[[folder/figure.svg]]
Run Code Online (Sandbox Code Playgroud)
随着org-export-as-html。
这显然不起作用 - 只是在 html 文件中添加引用...。
我有一个名为的模块文件mymodule.py,其中包含以下代码:
class foo:
def __init__(self):
self.foo = 1
class bar:
import foo
def __init__(self):
self.bar = foo().foo
Run Code Online (Sandbox Code Playgroud)
__init__.py同一目录中的文件有
from mymodule import foo
Run Code Online (Sandbox Code Playgroud)
从同一目录中的脚本,我有以下代码:
from mymodule import bar
Run Code Online (Sandbox Code Playgroud)
当我尝试运行时bar(),我得到了错误No module named foo.如何创建的实例foo中bar,当他们在同一个模块文件中定义的?
这本身并不是编程问题,但看看R和ggplot2在这里是如何流行的,我想我会问是否有人知道是否有办法在http://docs.ggplot2下载ggplot2的所有文档.组织,以便他们可以脱机访问.我经常处于无法访问互联网的情况.
引用类似乎只接受允许的基本/标准对象类型.例如,我想要一个chron对象,但这不允许我定义它:
> newclass <- setRefClass("newclass",fields=list(time="chron"))
Error in refClassInformation(Class, contains, fields, methods, where) :
class "chron" for field 'time' is not defined
Run Code Online (Sandbox Code Playgroud)
这是限制还是有更好的方法?我试过在initialize方法中设置它但显然这不是要么去的方法:
> newclass <- setRefClass("newclass",
+ fields=list(time="numeric"),
+ methods=list(initialize=function() time <<- as.chron(time)))
library(chron)
> x <- newclass(time=as.chron("2011-01-01"))
Error in .Object$initialize(...) : unused argument (time = 14975)
Run Code Online (Sandbox Code Playgroud) 我下载了一个.tgz文件,其中包含R /中的R脚本和src /中的单个C文件.
R函数以这种方式调用C函数:
Mainfn<-function(x) {
output <- matrix(nrow(x),ncol(x));
output<-.C("myCfn",x=as.double(x),output=as.double(output),
PACKAGE='mypackage')
return(output)
}
Run Code Online (Sandbox Code Playgroud)
在C文件中,以这种方式定义的函数[...]表示一系列长的计算.
#include <R.h>
#include <Rmath.h>
#include <math.h>
/*----------------------------------------------------------*/
void myCfn(double *x,double *output){
[...]
}
Run Code Online (Sandbox Code Playgroud)
当我安装包时R CMD INSTALL mypackage.tgz,Mainfun()出错:"myCfn" not available for .C() for package "mypackage".我想知道如何让我的函数识别C文件中定义的这个函数?