R的绘图非常适合数据探索,因为它通常具有非常智能的默认值.例如,在使用公式绘图时,绘图轴的标签从公式派生.换句话说,以下两个调用产生相同的输出:
plot(x~y)
plot(x~y, xlab="x", ylab="y")
Run Code Online (Sandbox Code Playgroud)
有没有办法获得类似的"智能自动标题"?
例如,我想打电话
plot(x~y, main=<something>)
Run Code Online (Sandbox Code Playgroud)
并产生与呼叫相同的输出
plot(x~y, main="plot(x~y)")
Run Code Online (Sandbox Code Playgroud)
当<something>插入使用某种反省的使用呼叫.
是否有通过某种标准机制或外部包装在R中执行此操作的工具?
编辑:一个建议是将公式指定为字符串,并将其作为参数提供给formula()调用以及main.这很有用,但是它会错过参数而不会影响绘图,例如使用数据子集.详细说明,我想
x<-c(1,2,3)
y<-c(1,2,3)
z<-c(0,0,1)
d<-data.frame(x,y,z)
plot(x~y, subset(d, z==0), main=<something>)
Run Code Online (Sandbox Code Playgroud)
具有相同的效果
plot(x~y, subset(d, z==0), main="plot(x~y, subset(d, z==0))")
Run Code Online (Sandbox Code Playgroud) 以下示例数据为例:
x <- rnorm(10000)
y <- rnorm(10000) * x
z <- rnorm(10000) * y
df <- data.frame(x,y,z)
Run Code Online (Sandbox Code Playgroud)
我们可以生成散点图矩阵,如下所示:
splom(df)
Run Code Online (Sandbox Code Playgroud)

但由于大量的重叠点,很难测量密度.
是否有一种直接的方法用双变量直方图热图替换每个图,就像壁球产生的那样?
library(squash)
hist2(df$x, df$y)
Run Code Online (Sandbox Code Playgroud)

我有一个本地git存储库,它通过跟踪远程SVN存储库git svn.我已经在本地git存储库中做了一些更改,但是现在我想创建一个反映SVN HEAD的分支,以便对SVN中的代码进行一些更改,因为我不想传播我的git master到SVN的变化还没有.我怎么能这样做?
立即跟进:我需要对SVN HEAD进行更改并提交,然后将它们合并回我的git master.我该怎么做?我git merge将'svn-edits'分支转换成主人,还是做一个git svn rebase?
我有兴趣尽快将numpy数组转换为稀疏字典.让我详细说明:
鉴于阵列:
numpy.array([12,0,0,0,3,0,0,1])
Run Code Online (Sandbox Code Playgroud)
我希望出版字典:
{0:12, 4:3, 7:1}
Run Code Online (Sandbox Code Playgroud)
如您所见,我们只是将序列类型转换为从非零值到其值的显式映射.
为了使这更有趣,我提供以下测试工具来尝试替代方案:
from timeit import Timer
if __name__ == "__main__":
s = "import numpy; from itertools import izip; from numpy import nonzero, flatnonzero; vector = numpy.random.poisson(0.1, size=10000);"
ms = [ "f = flatnonzero(vector); dict( zip( f, vector[f] ) )"
, "f = flatnonzero(vector); dict( izip( f, vector[f] ) )"
, "f = nonzero(vector); dict( izip( f[0], vector[f] ) )"
, "n = vector > 0; i = numpy.arange(len(vector))[n]; v = vector[n]; dict(izip(i,v))"
, …Run Code Online (Sandbox Code Playgroud) 我在scons中使用Command构建器指定需要调用特定脚本来生成特定文件.
我想只运行该脚本,因为该文件是先前生成的."命令"构建器的默认行为似乎是始终运行脚本.我怎么能改变这个?
这是我目前的SConstruct:
speed = Command('speed_analysis.tex','','python code/speed.py')
report = PDF(target = 'report.pdf', source = 'report.tex')
Depends(report, speed)
Run Code Online (Sandbox Code Playgroud) 我在以下格式的数据框中有一些数据:
A B C V1 V2 V3
1 1 1 x y z
1 1 2 a b c
...
Run Code Online (Sandbox Code Playgroud)
其中 A、B、C 是因子,A、B、C 组合对于每一行都是唯一的。
我需要将一些列转换为因子,以实现如下形式:
A B C V val
1 1 1 V1 x
1 1 1 V2 y
1 1 1 V3 z
1 1 2 V1 a
1 1 2 V2 b
1 1 2 V2 c
...
Run Code Online (Sandbox Code Playgroud)
我一直在使用以下命令来grep我当前目录中和下面的所有python源文件中的字符串:
find . -name '*.py' -exec grep -nHr <string> {} \;
Run Code Online (Sandbox Code Playgroud)
我想简化一些事情,这样我就可以输入类似的内容
findpy <string>
Run Code Online (Sandbox Code Playgroud)
并获得完全相同的结果.别名似乎不够,因为它们只进行字符串扩展,而我需要指定的参数不是最后一个参数.听起来函数适合于任务,所以我有几个问题:
我有一些表格的论坛数据
帖子(作者,thread_id,文本)
对于每个作者,我想选择与该作者相关联的10个不同的thread_id(可能超过10个,并且该数字将因作者而异).
我正在考虑使用GROUP BY对'author'进行分组,但我无法理解如何在每个组中表达LIMIT,以及如何将每个组扩展回10行.