是否有一种很好的方法可以以R对象(例如列表)的形式从已安装的包中提取R-help页面.我想以标准化的JSON或XML模式的形式公开帮助页面.但是从DB获取R-help信息比我想象的要难.
我不久前一起讨厌获取R帮助手册页的HTML.但是我宁愿有一个包含这些信息的通用R对象,我可以渲染到JSON/XML/HTML等.我查看了helprHadley 的包,但这对我的目的来说似乎有些过分.
当我执行多个jsonp请求时,我在jQuery中遇到问题,所有这些请求都具有相同的jsonpCallback函数.似乎只针对其中一个回调函数被触发.JSONP请求是否以某种方式相互覆盖?
下面是对github执行2个jsonp请求的示例,即使两个firebug都显示它们都返回,但getName只调用其中一个回调函数:
function getName(response){
alert(response.data.name);
}
function userinfo(username){
$.ajax({
url: "https://api.github.com/users/" + username,
jsonpCallback: 'getName',
dataType: "jsonp"
});
}
users = ["torvalds", "twitter", "jquery"]
for(var i = 0; i < users.length; i++){
userinfo(users[i]);
}
Run Code Online (Sandbox Code Playgroud) 我不确定我在这里使用正确的术语,但是当从常规字符集中转出字节时,我需要print或者deparse使用C表示法(例如"\x05"代替"\005").
x <- "This is a \x05 symbol"
print(x)
[1] "This is a \005 symbol"
Run Code Online (Sandbox Code Playgroud)
是否有本地方法来实现这一目标?
我需要这个来生成BSON:http://bsonspec.org/#/specification.所有示例都明确使用\x05符号.
与此问题相关,但略有不同,希望更清楚.
我正在寻找一种干净的方式来正式注册S4和S3类的方法,但不依赖于可怕的S3-dot-naming-scheme进行调度.一个例子:
setClass("foo");
setClass("bar");
setGeneric("test", function(x, ...){
standardGeneric("test");
});
setMethod("test", "bar", function(x, ...){
return("success (bar).");
});
obj1 <- 123;
class(obj1) <- "bar";
test(obj1);
Run Code Online (Sandbox Code Playgroud)
这个例子展示了我们如何test为类的S3对象注册一个方法bar,而不需要命名该函数test.bar,这很好.但是,限制是如果我们以这种方式注册方法,它们将仅被分派到对象的第一个S3类.例如:
obj2 <- 123;
class(obj2) <- c("foo", "bar");
test(obj2);
Run Code Online (Sandbox Code Playgroud)
这不起作用,因为S4方法调度只会尝试类foo及其超类.如何扩展此示例,test以便bar在找不到合适的方法时自动选择方法foo?例如S3风格调度,但无需返回命名一切test.foo和test.bar?
总结一下:如何创建一个使用形式方法调度的泛型函数,但另外还要回到具有多个类的S3对象的对象的第二,第三等类.
我知道R中有包可以有效地存储稀疏矩阵.还有一种方法可以有效地存储低秩矩阵吗?例如:
A <- matrix(rnorm(1e6), nrow=1e5, ncol=1e1)
B <- A %*% t(A)
Run Code Online (Sandbox Code Playgroud)
现在,B太大而不能存储在内存中,但它的级别很低.有没有什么办法来构建和存储B以高效的方式,这样一些基本的读取方法(rowSums,colSums等)都是在飞行中进行,以便为CPU或内存交易?
从R中查找OS临时目录的跨平台方法是什么?我目前使用:
dirname(tempdir())
Run Code Online (Sandbox Code Playgroud)
在交互式R会话中,Ubuntu和Windows上的工作都做了.然而,当从RApache内部调用时它失败了.在RApache中,值tempdir()始终是/tmp,因此dirname(tempdir())导致/,这显然是错误的.我也尝试过:
Sys.getenv("TMP")
Sys.getenv("TEMP")
Sys.getenv("TMPDIR")
Run Code Online (Sandbox Code Playgroud)
正如所建议的那样,?"environment variables"但这些都没有在Ubuntu中设置.它似乎也没有在任何文件中设置,/etc/R/*所以我不太明白R如何检测到这个值.
我想制作一个单独的大页面,侧面有一个菜单,可以直接链接到这个页面内的部分。类似于引导手册页。
我想用 Markdown 编写页面内容。如何让 jekyll 从 Markdown 页面的标题自动创建导航菜单?即循环/迭代标题以插入菜单项?
在firefox中,当javascript尝试http从托管的页面向服务器发出CORS请求时https,它将引发错误:
Blocked loading mixed active content
Run Code Online (Sandbox Code Playgroud)
我想抓住这些错误,但我无法弄清楚如何.我用jQuery尝试过这样的事情:
try {
$.get("http://public.opencpu.org/ocpu/library/").fail(function(xhr, err){
console.log("Server error:" + xhr.responseText);
});
} catch(e){
console.log(e.message);;
}
Run Code Online (Sandbox Code Playgroud)
但是buth xhr.responseText并且e.message是空字符串(可能是因为$.ajax异步发生).如何捕获实际的错误消息:阻止加载混合活动内容...
当R将科学记数法中的大数字转换为字符串时,它包含所有有效数字而不包括尾随零.是否有可能在C中实现这一点sprintf?
> as.character(12345e11)
[1] "1.2345e+15"
> as.character(1234500000e6)
[1] "1.2345e+15"
> as.character(1234500001e6)
[1] "1.234500001e+15"
Run Code Online (Sandbox Code Playgroud)
我试过sprintf(buf, "%g", val)但这似乎最多包括5位十进制数字.我也尝试设置更高的精度,sprintf(buf, "%.18g", val)但这将包括非有效数字和尾随零.
有没有办法获得行为,sprintf(buf, "%g", val)但增加5位数限制?