我想将一个stat_function图层添加到一个绘图中,其美学映射到某些标识一组参数的变量的状态。我在下面的最小工作示例中手动创建了两个 stat_function 行。这通常是结果的样子。
p <- ggplot(data.frame(x = -1:1), aes(x = x))
p + stat_function(fun = function (x) 0 + 1 * x, linetype = 'dotted') +
stat_function(fun = function (x) 0.5 + -1 * x, linetype = 'solid')
Run Code Online (Sandbox Code Playgroud)
我对如何做到这一点的最佳猜测是
params <- data.frame(
type = c('true', 'estimate'),
b = c(0, 0.5),
m = c(1, -1),
x = 0
)
linear_function <- function (x, b, m) b + m * x
p + stat_function(data = params,
aes(linetype = type, x …Run Code Online (Sandbox Code Playgroud) 我想将Mac上的grep更新到2.5.1以后的更新版本,它与Mac OS 10.7.2一起提供.我的问题是:更新Mac的grep(或任何类似程序)的最佳方法是什么?我可以使用Fink或MacPorts来安装新版本并设置我的路径变量以查看文件树的相应分支,或者我可以更新usr/bin中的grep程序,或者可能还有另一种我没有考虑过的方法.因为我对命令行和Mac的Unix后端相对较新,所以我担心会破坏某些东西.也就是说,我当然愿意从源代码编译最新的grep稳定版本并将其安装在/ usr/bin中,如果这是合适的方法.如果有人想知道我为什么要从2.5.1更新grep,我有两个原因:第一,我正在学习使用grep和基于2.5.3的参考书(可能类似,我知道); 第二,更重要的是,我想学习如何更新这些程序只是为了有效地管理我自己的系统.
我想同时可视化空间数据中预测的平均值和误差(方差)。一种可能的方法是将平均值映射到色调,将误差映射到饱和度或亮度。尽管我在地图中执行此操作,但我将在此处提供一个改编自 ggplot2 文档的更简单的最小工作示例。
library(ggplot2)
library(RColorBrewer)
dsub <- subset(diamonds, x > 5 & x < 6 & y > 5 & y < 6)
dsub$var <- dsub$x
dsub$diff <- with(dsub, sqrt(abs(x-y))* sign(x-y))
d <- qplot(x, y, data=dsub, colour=diff)
d + scale_color_gradientn(colours=brewer.pal(7,"YlOrRd"))
Run Code Online (Sandbox Code Playgroud)

我希望看到的不是所附的图,而是将色带的亮度或饱和度映射到数据中的变量“var”的版本。理想情况下,这样的图应包含二维图例。
数据集需要6-12个小时才能加载到R中.大量的数据集即将出现,我目前的导入过程显然还没有为他们做好准备.一旦它在数据框中全部,大小就不是问题; 大多数操作只需几秒钟,因此我的硬件可能不是问题.
注意:这个问题不是类似问题的重复,因为我已经实现了相关线程的大部分建议,例如指定colClasses.
制表符分隔文本文件中的行如下所示:
20 -0.5 1 2 1 1 19 0 119 30 exp(-31.3778)
Run Code Online (Sandbox Code Playgroud)
我已经定义了几个函数,它们一起循环文件以将数据加载到单个数据框中,然后将其保存为blob.这个过程需要数小时.该过程可预测地减慢并在进展时使用更多内存; top表示在使用数据文件的一半时,R正在使用> 95%的CPU和(更重要的是?)> 1.5 GB的实内存.
# get numeric log from character data
extract_log <- function(x) {
expr <- "exp\\((.*)\\)"
substring <- sub(expr, "\\1", x)
log <- as.numeric(substring)
return(log)
# reads .dat files into data frames
read_dat <- function(x, colClasses = c(rep("numeric", 10), "character")) {
df <- read.table(x, header = TRUE, sep = "\t", comment.char = "",
colClasses = colClasses)
df <- cbind(df, …Run Code Online (Sandbox Code Playgroud) 我想在 ggplot2 中创建一个散点图,其中一条或多条线重叠。查看了 geom_smooth() 和 geom_line() 的文档后,我仍然不清楚如何指定要添加到图中的线的方程。我知道这必须是非常基本的,所以请随意简单地向我指出我必须忽略的适当文档。
我在使用Python的re模块创建类的实例时遇到了麻烦.这是我正在尝试做的事情:
我希望下面的代码片段能够在Record类re的terminal()方法中打印模块捕获的五个大写字母的字符串,但很明显我误解了一些东西.实际输出位于代码下方.
class SrcFile:
def __init__(self, which):
self.name = which
class Record(SrcFile):
def terminal(self):
recordline = re.compile(r"^([A-Z]{5})\s{3}")
if recordline.match(self):
m = recordline.match(self)
return m.group(1)
for f in files:
file = SrcFile(f)
for l in f:
record = Record(f)
print(record.terminal())
Run Code Online (Sandbox Code Playgroud)
同样,我希望每条记录行看到一个包含五个大写字母的字符串,但实际上我得到的是:
Traceback (most recent call last):
File "./next.py", line 78, in <module>
print(record.terminal())
File "./next.py", line 63, in terminal
if recordline.match(self):
TypeError: expected string or buffer
Run Code Online (Sandbox Code Playgroud)
如果有人能够在代码中解释原因,那也会很有帮助
for f in files:
file = SrcFile(f)
for …Run Code Online (Sandbox Code Playgroud)