我想创建下一个直方图密度图ggplot2.以"正常"方式(基本包)非常简单:
set.seed(46)
vector <- rnorm(500)
breaks <- quantile(vector,seq(0,1,by=0.1))
labels = 1:(length(breaks)-1)
den = density(vector)
hist(df$vector,
breaks=breaks,
col=rainbow(length(breaks)),
probability=TRUE)
lines(den)
Run Code Online (Sandbox Code Playgroud)

到目前为止,我已经达到了ggplot:
seg <- cut(vector,breaks,
labels=labels,
include.lowest = TRUE, right = TRUE)
df = data.frame(vector=vector,seg=seg)
ggplot(df) +
geom_histogram(breaks=breaks,
aes(x=vector,
y=..density..,
fill=seg)) +
geom_density(aes(x=vector,
y=..density..))
Run Code Online (Sandbox Code Playgroud)
但是"y"尺度具有错误的尺寸.我注意到下一次运行得到了正确的"y".
ggplot(df) +
geom_histogram(breaks=breaks,
aes(x=vector,
y=..density..,
fill=seg)) +
geom_density(aes(x=vector,
y=..density..))
Run Code Online (Sandbox Code Playgroud)
我只是不明白.y=..density..在那里,应该是高度.那么为什么我试图填充它时我的尺度会被修改?
我确实需要颜色.我只想要一个直方图,其中根据默认的ggplot填充颜色定向设置每个块的中断和颜色.
在一些R函数的主体中,例如lm我看到对match.call函数的调用.正如帮助页面所说,在函数内部使用时会match.call返回一个调用,其中指定了参数名称; 这对于将大量参数传递给另一个函数应该是有用的.
例如,在lm函数中我们看到对函数的调用model.frame
function (formula, data, subset, weights, na.action, method = "qr",
model = TRUE, x = FALSE, y = FALSE, qr = TRUE, singular.ok = TRUE,
contrasts = NULL, offset, ...)
{
cl <- match.call()
mf <- match.call(expand.dots = FALSE)
m <- match(c("formula", "data", "subset", "weights", "na.action",
"offset"), names(mf), 0L)
mf <- mf[c(1L, m)]
mf$drop.unused.levels <- TRUE
mf[[1L]] <- quote(stats::model.frame)
mf <- eval(mf, parent.frame())
...
Run Code Online (Sandbox Code Playgroud)
为什么这比直接调用model.frame指定参数名称更有用呢?
function (formula, …Run Code Online (Sandbox Code Playgroud) 我需要制作几个关于相同矢量值和密度估计的直方图.所以下一个情节很好.
values = rnorm(100)
plot = ggplot(data.frame(val=values), aes(x=val)) + geom_histogram(aes(y = ..density..)) + geom_density()
Run Code Online (Sandbox Code Playgroud)
但是,我需要打印几个具有不同断点的图(不是一个带有不同面板的图),例如:
breaks = list(c(-1,0,1),c(-2,-1.5,0,1.5,2),c(-0.5,0,0.5))
Run Code Online (Sandbox Code Playgroud)
如何重新定义变量的中断plot?
我有两个带数值的向量.如
v1 <- c(1, 3, 4, 5, 6, 7, 8)
v2 <- c(54, 23, 12, 53, 7, 8)
Run Code Online (Sandbox Code Playgroud)
我想计算插入,删除和替换的数量,我需要将一个向量转换为另一个向量,每个操作分别具有一定的成本c1 c2和c3.我知道基础包上的函数adist为字符串执行此操作,但我不知道与数字等效的函数.
我想用一个字母引用每个数字,但我有超过2000个唯一数字,所以如果有人知道如何在R中获得2000个不同的字符,这对我来说也是一个解决方案.
谢谢你的帮助.
我编写了一个由 R 函数调用的外部 C 函数.C()。为了检查是否发生内存泄漏,我使用valgrindUbuntu 进行下一个调用。
R --debugger=valgrind --vanilla < Desktop/eraseme.R
Run Code Online (Sandbox Code Playgroud)
我没有收到任何错误。但我确实收到了内存泄漏的通知。
==16347== HEAP SUMMARY:
==16347== in use at exit: 30,440,904 bytes in 13,097 blocks
==16347== total heap usage: 29,644 allocs, 16,549 frees, 134,692,871 bytes allocated
==16347==
==16347== LEAK SUMMARY:
==16347== definitely lost: 120 bytes in 2 blocks
==16347== indirectly lost: 480 bytes in 20 blocks
==16347== possibly lost: 0 bytes in 0 blocks
==16347== still reachable: 30,440,304 bytes in 13,075 blocks
==16347== suppressed: 0 bytes …Run Code Online (Sandbox Code Playgroud) 我有一个python脚本,通过selenium调用chrome与下一行.
ff = webdriver.Chrome('/home/user01/webScraping/CollectAndGo/chromedriver')
Run Code Online (Sandbox Code Playgroud)
从shell脚本调用python脚本.
python /home/user01/webScraping/CollectAndGo/cgcom.py > /home/user01/webScraping/CollectAndGo/cgcom.log 2>&1
Run Code Online (Sandbox Code Playgroud)
当我从终端运行脚本或只是执行.sh文件时,它运行正常,但是当我安排crontab作业时,它会因下一个错误而失败.
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: u'unknown error: Chrome failed to start: exited abnormally\n (Driver info: chromedriver=2.9.248304,platform=Linux 3.5.0-36-generic x86_64)'
Run Code Online (Sandbox Code Playgroud)
该错误与此问题的第一行代码有关.有人知道为什么会发生这种情况吗?
我必须制作一个取决于包data.table的R包.但是,如果我要执行一个功能,例如包中的下一个功能
randomdt <- function(){
dt <- data.table(random = rnorm(10))
dt[dt$random > 0]
}
Run Code Online (Sandbox Code Playgroud)
函数[将使用data.frame的方法而不是data.table,因此错误
Error in `[.data.frame`(x, i) : undefined columns selected
Run Code Online (Sandbox Code Playgroud)
会出现.通常这可以通过使用get('[.data.table')或类似的方法(package::function最简单)解决,但似乎不起作用.毕竟,[是一个原始的功能,我不知道它的方法是如何工作的.
那么,如何[从我的包中调用data.table 函数呢?
我有下一个代码的问题.
try: 1+1
except Exception as exception: pass
1+1
try: 2+2
except Exception as exception: pass
Run Code Online (Sandbox Code Playgroud)
我在提示中得到的结果是
... ... File "<stdin>", line 3
1+1
^
SyntaxError: invalid syntax
>>> ... ... ... 4
Run Code Online (Sandbox Code Playgroud)
但是,下一个代码执行时没有错误.
try: 1+1
except Exception as exception: pass
try: 2+2
except Exception as exception: pass
Run Code Online (Sandbox Code Playgroud)
我sys.version_info是:
sys.version_info(major=2, minor=7, micro=3, releaselevel='final', serial=0)
Run Code Online (Sandbox Code Playgroud)
为什么我会收到语法错误?
在R编程语言中,我有一个命名列表,如下所示
list <- list(first='hello',second='bye')
Run Code Online (Sandbox Code Playgroud)
我想分别使用hello 和bye来转换变量first和second值.显然,真实列表比示例一长得多,我想知道是否有比在循环中使用函数更好的解决方案.assign
谢谢你的时间.