是否有可能从R中获得CRAN包的发布日期?我想获得k个最近发布的CRAN包的列表,或者在日期dd-mm-yy之后发布的所有包.与available_packages_by_date.html上的信息类似?
available.packages()命令有一个"fields"参数,但这只从DESCRIPTION中提取字段.包描述上的日期字段并不总是最新的.
我可以从html页面获得一个智能正则表达式,但我不确定这个html文件是多么可靠和最新...在某些时候,Kurt可能会决定给布局一个改造,这会打破脚本.另一种方法是使用CRAN FTP的时间戳,但我也不确定这个解决方案有多好.我不确定是否存在具有发布日期的正式结构文件?我假设HTML页面是从某些DB自动生成的.
我正在寻找一种通用的方法来启动然后杀死一个R进程,包括它可能调用的所有分支或其他进程.
例如,用户运行如下脚本:
library(multicore);
for(i in 1:3) parallel(foo <- "bar");
for(i in 1:3) system("sleep 300", wait=FALSE);
for(i in 1:3) system("sleep 300&");
q("no")
Run Code Online (Sandbox Code Playgroud)
用户退出R会话后,子进程仍在运行:
jeroen@jeroen-ubuntu:~$ ps -ef | grep R
jeroen 4469 1 0 16:38 pts/1 00:00:00 /usr/lib/R/bin/exec/R
jeroen 4470 1 0 16:38 pts/1 00:00:00 /usr/lib/R/bin/exec/R
jeroen 4471 1 0 16:38 pts/1 00:00:00 /usr/lib/R/bin/exec/R
jeroen 4502 4195 0 16:39 pts/1 00:00:00 grep --color=auto R
jeroen@jeroen-ubuntu:~$ ps -ef | grep "sleep"
jeroen 4473 1 0 16:38 pts/1 00:00:00 sleep 300
jeroen 4475 1 …Run Code Online (Sandbox Code Playgroud) 启用并具有特权时,Apache2中的mod_dir模块会在请求不包含index.html文件的目录时自动为HTML格式的页面提供目录内容.我正在寻找一种简单的方法来使这些目录内容机器可读; 优选地,将目录的内容格式化为包含子目录/子文件而不是HTML页面的JSON数组.
什么是一个简单的方法来实现这一点,适用于Apache2.2的大多数标准配置?(请不要php脚本)
我不太清楚这个技术术语是什么.我有一个带有交互式图形的GUI.用户与GUI交互后,我需要执行一些CPU密集型操作.但是,用户输入非常频繁,所以我只想在没有用户输入的1000ms之后调用该函数.在我使用的模式下面:
scheduler = (function(){
var timer;
function exec(call, delay){
clearTimeout(timer);
timer = setTimeout(call, delay);
};
return exec;
})()
Run Code Online (Sandbox Code Playgroud)
即如果3次调用scheduler是在彼此之后完成的,那么实际上只会执行最后一次调用:
scheduler(function(){alert('foo')}, 1000);
scheduler(function(){alert('bar')}, 1000);
scheduler(function(){alert('zoo')}, 1000);
Run Code Online (Sandbox Code Playgroud)
它似乎工作,但感觉有点hacky我有点担心Javascript的任何警告setTimeout,尤其是范围问题.这看起来像我可以在更大范围内使用的可靠模式吗?我传递的内联函数scheduler是否能像往常一样在其词法范围内查找所有对象settimeout?如果我有几个这样的调度程序实例呢?他们会互相干扰吗?有没有其他方法来实现这一目标?
什么是自说移动整个目录最可靠的方法/tmp/RtmpK4k1Ju/oldname来/home/jeroen/newname?最简单的方法是,file.rename这并不总是有效,例如当from和to不同的磁盘上.在这种情况下,需要以递归方式复制整个目录.
这是我想出来的东西,但它有点涉及,我不确定它是否可以跨平台工作.有没有更好的办法?
dir.move <- function(from, to){
stopifnot(!file.exists(to));
if(file.rename(from, to)){
return(TRUE)
}
stopifnot(dir.create(to, recursive=TRUE));
setwd(from)
if(all(file.copy(list.files(all.files=TRUE, include.dirs=TRUE), to, recursive=TRUE))){
#success!
unlink(from, recursive=TRUE);
return(TRUE)
}
#fail!
unlink(to, recursive=TRUE);
stop("Failed to move ", from, " to ", to);
}
Run Code Online (Sandbox Code Playgroud) geom_smooth当y公式中的变量被转换时,有没有办法使用?例如:
#This works:
myplot <- qplot(speed, dist, data=cars)
(myplot + geom_smooth(method="lm", formula=y~log(x)))
#does not work
(myplot + geom_smooth(method="lm", formula=log(y)~x))
Run Code Online (Sandbox Code Playgroud)
我所追求的是这样一条线:
myplot + geom_line(aes(x=speed, y=exp(predict(lm(log(dist)~speed)))))
Run Code Online (Sandbox Code Playgroud) 我们在教室环境中使用点图来介绍直方图,因为分组概念让许多学生感到困惑.所以我们从相似但更直观的dotplot开始:
x <- rnorm(100)
qplot(x, geom = "bar")
qplot(x, geom = "dotplot", method="histodot")
Run Code Online (Sandbox Code Playgroud)

因为学生在他们自己的数据上执行此操作,所以代码需要在没有手动调整的情况下工作.但是,geom_dotplot似乎使用不同的缩放默认值geom_bar.y轴不随数据调整,但似乎仅取决于点的大小.例如:
x <- runif(1000)
qplot(x, geom = "bar")
qplot(x, geom = "dotplot", method="histodot")
Run Code Online (Sandbox Code Playgroud)

我怎样才能让geom_dotplot与stat_histodot规模y轴正是因为它会为直方图做,或者通过使用更小的或重叠点来?
有没有办法获得(和设置)encoding现有连接?例如:
con <- file(tempfile(), encoding = "UTF-8")
summary(con)
Run Code Online (Sandbox Code Playgroud)
摘要列出了模式以及是否已打开,但不列出连接使用的编码.
我想将一些 shell 脚本 + 支持文件打包成一个 homebrew 公式,将这些脚本安装在用户的某处$PATH。我将从我自己的水龙头中提供配方。
通读公式食谱,这些示例似乎假设上游库中的 cmake 或 autotools 系统。如果我的项目只包含几个脚本和配置文件怎么办?我应该手动将它们复制到#{prefix}/公式中吗?