我想知道是否有关于操作效率的文档R,特别是与数据操作相关的文档.
例如:
C level,你必须分配一个新的长度数组n+1并复制所有元素.开发人员可能不希望将自己绑定到特定的实现,但是有一些比猜测还要坚实的东西会更好.
另外,我知道主要的R性能提示是尽可能使用向量操作而不是loops.
apply怎么样?hidden loops?matrices对战data frames怎么样?R 有天然的排序吗?
说我有一个像这样的角色矢量:
seq.names <- c('abc21', 'abc2', 'abc1', 'abc01', 'abc4', 'abc201', '1b', '1a')
Run Code Online (Sandbox Code Playgroud)
我想以不合理的方式对其进行排序,所以我得到了回复:
c('1a', '1b', 'abc1', 'abc01', 'abc2', 'abc4', 'abc21', 'abc201')
Run Code Online (Sandbox Code Playgroud)
这存在于某处,还是应该开始编码?
我正在通过将shell脚本粘贴到用户数据字段来初始化运行标准Ubuntu 13.04 AMI衍生物的spot实例.
这有效.该脚本运行.但它很难调试,因为我无法弄清楚脚本输出的记录位置,如果在任何地方.
我查看了/var/log/cloud-init.log,它似乎包含了一些与调试cloud-init相关的东西本身,但与我的脚本无关.我在/ var/log中搜索并没有发现任何内容.
是否有一些特殊的东西我必须做以打开登录?
相当于R中命名列表的自然Python是一个dict,但RPy2为您提供了一个ListVector对象.
import rpy2.robjects as robjects
a = robjects.r('list(foo="barbat", fizz=123)')
Run Code Online (Sandbox Code Playgroud)
此时,a是ListVector对象.
<ListVector - Python:0x108f92a28 / R:0x7febcba86ff0>
[StrVector, FloatVector]
foo: <class 'rpy2.robjects.vectors.StrVector'>
<StrVector - Python:0x108f92638 / R:0x7febce0ae0d8>
[str]
fizz: <class 'rpy2.robjects.vectors.FloatVector'>
<FloatVector - Python:0x10ac38fc8 / R:0x7febce0ae108>
[123.000000]
Run Code Online (Sandbox Code Playgroud)
我想要的是我可以像普通的Python字典那样对待的东西.我的临时黑客是这样的:
def as_dict(vector):
"""Convert an RPy2 ListVector to a Python dict"""
result = {}
for i, name in enumerate(vector.names):
if isinstance(vector[i], robjects.ListVector):
result[name] = as_dict(vector[i])
elif len(vector[i]) == 1:
result[name] = vector[i][0]
else:
result[name] = vector[i]
return result
as_dict(a) …Run Code Online (Sandbox Code Playgroud) 在尝试安装一些Rcpp作为依赖项的R软件包时,我偶然发现了一个链接器错误.我的设置是由Homebrew安装的Mac OS X 10.9.1(Mavericks),R 3.0.2.这是错误输出:
> install.packages('Rcpp')
trying URL 'http://cran.fhcrc.org/src/contrib/Rcpp_0.10.6.tar.gz'
Content type 'application/x-gzip' length 1985569 bytes (1.9 Mb)
opened URL
==================================================
downloaded 1.9 Mb
* installing *source* package ‘Rcpp’ ...
** package ‘Rcpp’ successfully unpacked and MD5 sums checked
** libs
clang++ -I/usr/local/Cellar/r/3.0.2/R.framework/Resources/include -DNDEBUG -I../inst/include/ -I/usr/local/include -fPIC -g -O2 -c Date.cpp -o Date.o
clang++ -I/usr/local/Cellar/r/3.0.2/R.framework/Resources/include -DNDEBUG -I../inst/include/ -I/usr/local/include -fPIC -g -O2 -c Module.cpp -o Module.o
clang -I/usr/local/Cellar/r/3.0.2/R.framework/Resources/include -DNDEBUG -I../inst/include/ -I/usr/local/include -fPIC -c Rcpp_init.c -o Rcpp_init.o
clang++ -I/usr/local/Cellar/r/3.0.2/R.framework/Resources/include -DNDEBUG …Run Code Online (Sandbox Code Playgroud) 根据文档,我应该能够定义一个宏并存储它.然后,下次启动IPython shell时,宏将可用.但是,它不起作用:
In [4]: print "Foobarbatbizbuzzbonk"
Foobarbatbizbuzzbonk
In [5]: %macro foo 4
Macro `foo` created. To execute, type its name (without quotes).
=== Macro contents: ===
print "Foobarbatbizbuzzbonk"
In [6]: %store foo
Stored 'foo' (Macro)
In [7]: quit()
Run Code Online (Sandbox Code Playgroud)
当我再次启动IPython shell时,没有宏:
In [1]: foo
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-1-d3b07384d113> in <module>()
----> 1 foo
NameError: name 'foo' is not defined
In [2]: %macro
Out[2]: []
Run Code Online (Sandbox Code Playgroud)
有谁知道为什么这不起作用?
我想创建一个模拟方法来调用被模拟的底层方法。
我正在想象类似以下内容,但我找不到任何关于持有对被模拟对象的引用的模拟对象的文档,我已将其表示[[wrapped_method_foo]]如下:
from mock import patch
class Foo(object):
def __init__(self, state):
self.state = state
def foo(self, a):
print "real foo", a
return a + self.state
f = Foo(2000)
f.foo(1)
with patch.object(Foo, 'foo', autospec=True) as mock_foo:
def side_effect(self, a):
print "mock foo", a
return mock_foo.[[wrapped_method_foo]](self, a*2)
mock_foo.side_effect = side_effect
f.foo(2)
Run Code Online (Sandbox Code Playgroud) 这是我之前提出的问题的后续问题。老问题可以在这里找到,我收到了@jezrael的回答。
现在我想绘制成绩。
为了绘制我能做的所有成绩
counts_gardes = df1['new'].value_counts(sort=False)
counts_gardes.plot(kind='bar')
Run Code Online (Sandbox Code Playgroud)
但是,我无法弄清楚如何绘制每个年级组(包括零计数)。
counts_gardes_group = df1['new'].value_counts(sort=False)
counts_gardes_group.plot(kind='bar')
Run Code Online (Sandbox Code Playgroud)
我还想F在绘制的数字中包含零计数。我尝试了此处、此处和此处提供的解决方案,但它们不起作用。第一个返回所有成绩,而后者给出一个错误,指出index没有levels.
非常感谢任何帮助。
我有一个用于更新表格的模板。但是,用户可以选择更新一个字段或所有字段。很有可能他不会更新所有字段,所以我希望能够运行form.is_valid(),但是如果表单中几乎肯定会有空字段,我不想让它返回 false。
我不想required=False在表单中使用,因为还有另一个模板使用相同的表单,用户必须填写几乎所有的字段。
python ×4
r ×3
cloud-init ×1
django ×1
django-forms ×1
homebrew ×1
ipython ×1
mocking ×1
natural-sort ×1
pandas ×1
performance ×1
python-mock ×1
r-faq ×1
rcpp ×1
rpy2 ×1
sorting ×1
unit-testing ×1