我正在使用新Bootstrap 3 RC2中的轮播组件.但是,我注意到在实践中,标题通常是不可读的,因为我的图片颜色非常多.之前的Bootstrap 2.3使用黑色渐变作为标题,但似乎已被删除.
用CSS设置我的标题样式以使它们对任意图像可读的方法是什么?我尝试过使用阴影和背景颜色,但这只会让人非常难看.
这里有一些示例代码:http://bit.ly/1eX8Tz9
要在json中编码字符串,需要使用反斜杠转义几个保留字符,并且每个字符串都需要用双引号括起来.目前,该jsonlite包使用deparse基R中的函数实现了这个:
deparse_vector <- function(x) {
stopifnot(is.character(x))
vapply(x, deparse, character(1), USE.NAMES=FALSE)
}
Run Code Online (Sandbox Code Playgroud)
这样做的诀窍:
test <- c("line\nline", "foo\\bar", "I said: \"hi!\"")
cat(deparse_vector(test))
Run Code Online (Sandbox Code Playgroud)
然而deparse,对于大型载体来说,结果却很慢.另一种实现是gsub单独为每个角色:
deparse_vector2 <- function(x) {
stopifnot(is.character(x))
if(!length(x)) return(x)
x <- gsub("\\", "\\\\", x, fixed=TRUE)
x <- gsub("\"", "\\\"", x, fixed=TRUE)
x <- gsub("\n", "\\n", x, fixed=TRUE)
x <- gsub("\r", "\\r", x, fixed=TRUE)
x <- gsub("\t", "\\t", x, fixed=TRUE)
x <- gsub("\b", "\\b", x, fixed=TRUE)
x <- gsub("\f", "\\f", x, fixed=TRUE)
paste0("\"", x, …Run Code Online (Sandbox Code Playgroud) 如果一个软件包安装在多个库中会发生什么?例如,在Debian/Ubuntu中,可以通过apt-get安装debianized包,然后直接从CRAN安装相同包的更新版本.使用library()时,是否会加载最新的包,还是依赖于.libPaths()的顺序?
编辑:这个问题已经过时了.所述jsonlite软件包自动变平.
我正在处理具有基于记录的编码的在线数据流,通常使用JSON.API文档中已知对象的结构(即JSON中的名称),但是,值大多是可选的,并不存在于每个记录中.列表可以包含新列表,结构有时非常深.以下是一些GPS数据的一个非常简单的例子:http://pastebin.com/raw.php?i = yz6z9t25.请注意,在较低的行中,"l"由于没有GPS信号,对象丢失.
我正在寻找一种优雅的方法将这些对象展平成数据帧.我目前正在使用这样的东西:
library(RJSONIO)
library(plyr)
obj <- fromJSON("http://pastebin.com/raw.php?i=yz6z9t25", simplifyWithNames=FALSE, simplify=FALSE)
flatdata <- lapply(obj$data, as.data.frame);
mydf <- rbind.fill(flatdata)
Run Code Online (Sandbox Code Playgroud)
这样可以完成工作,但是速度慢且容易出错.这种方法的一个问题是我没有使用我对数据中结构(对象名称)的了解; 相反,它是从数据推断出来的.当每个记录中都没有某个属性时,这会导致问题.在这种情况下,它根本不会出现在数据框中,而不是具有NA值的列.这可能导致下游问题.例如,我需要处理位置时间戳:
mydf$l.t <- structure(mydf$l.t/1000, class="POSIXct")
Run Code Online (Sandbox Code Playgroud)
但是,如果数据集中l$t没有对象,则会导致错误.此外无论是as.data.frame和rbind.fill做事情很慢.示例数据集相对较小.有关更好实施的建议吗?一个强大的解决方案总是会产生一个数据帧,该数据帧具有相同顺序的相同列,并且只有行数变化.
编辑:在具有更多元数据的数据集下方.它的尺寸更大,嵌套更深:
obj <- fromJSON("http://www.stat.ucla.edu/~jeroen/files/output.json", simplifyWithNames=FALSE, simplify=FALSE)
Run Code Online (Sandbox Code Playgroud) 我正在寻找一种使用Mongo生成一些摘要统计数据的方法.假设我有一个包含许多表单记录的集合
{"name" : "Jeroen", "gender" : "m", "age" :27.53 }
Run Code Online (Sandbox Code Playgroud)
现在我想得到性别和年龄的分布.假设性别,只有价值"m"和"f".在我的收藏中获得男性和女性总数最有效的方法是什么?
而对于年龄,有没有办法做一些'binning'并给我一个像汇总的直方图; 即年龄在间隔内的记录数量:[0, 2), [2, 4), [4, 6) ...等等?
假设我使用ajax(例如通过jQuery)对实现PRG模式的API执行POST请求.因此它会重定向我:
POST /some/api
HTTP/1.1 303 See Other
Location: /some/other/location
Run Code Online (Sandbox Code Playgroud)
然后jQuery将自动跟随重定向并执行:
GET /some/other/location
Run Code Online (Sandbox Code Playgroud)
然后使用后一个请求的输出调用响应处理程序(成功,失败等).但是,如何/some/other/location在javascript中读取最终资源(在本例中)的位置?
我试图卸载包含所有依赖项的包.我遇到的问题是卸载依赖项的顺序.因为依赖项是递归的,所以它们只能在依赖关系树中从底部向上卸载.
在R中有一种简单或原生的方式来实现这一目标吗?我想要完成的第一步:
eval_current <- function(expr, envir=parent.frame(), timeout=60){
#set the timeout
setTimeLimit(elapsed=timeout, transient=TRUE);
#currently loaded packages
currentlyattached <- search();
currentlyloaded <- loadedNamespaces();
on.exit({
#reset time limit
setTimeLimit(cpu=Inf, elapsed=Inf, transient=FALSE);
#try to detach packages that were attached during eval
nowattached <- search();
todetach <- nowattached[!(nowattached %in% currentlyattached)];
for(i in seq_along(todetach)){
try(detach(todetach[i], unload=TRUE, character.only=TRUE, force=TRUE));
}
#try to unload packages that are still loaded
nowloaded <- loadedNamespaces();
tounload <- nowloaded[!(nowloaded %in% currentlyloaded)];
for(i in seq_along(tounload)){
try(unloadNamespace(tounload[i]));
}
});
eval(expr, envir)
}
Run Code Online (Sandbox Code Playgroud)
但它导致:
> …Run Code Online (Sandbox Code Playgroud) 我喜欢dplyr数据操作,但我不明白如何使用它进行编程.例如,要重新调整某些变量,我们可以:
mutate(cars, speed.scaled = scale(speed), dist.scaled = scale(dist))
Run Code Online (Sandbox Code Playgroud)
很酷.但现在假设我想编写一个mutate用于缩放数据框中所有变量的函数.我如何创建...参数?我能想出的最好的事情是:
fnargs <- lapply(names(cars), function(x){call("scale", as.name(x))})
names(fnargs) <- paste0(names(cars), ".scaled")
do.call(mutate, c(.data=as.name("cars"), fnargs))
Run Code Online (Sandbox Code Playgroud)
或者是否有一个更加编程友好的替代界面?
有一个长期的错误在RJSONIO解析包含Unicode转义序列JSON字符串.似乎需要修复bug,libjson这可能不会很快发生,因此我正在寻找在R中创建一个解决方法,\uxxxx在将它们提供给json解析器之前对其进行unescapes 序列.
一些上下文:json数据总是unicode,utf-8默认使用,因此通常不需要转义.但由于历史原因,json确实支持转义的unicode.因此json数据
{"x" : "Zürich"}
Run Code Online (Sandbox Code Playgroud)
和
{"x" : "Z\u00FCrich"}
Run Code Online (Sandbox Code Playgroud)
是等价的,并且在解析时应该产生完全相同的输出.但无论出于何种原因,后者都不起作用RJSONIO.另外一个混乱是由于R本身也支持转义的unicode.因此,当我们输入"Z\u00FCrich"R控制台时,它会自动正确转换为"Zürich".为了获得实际的json字符串,我们需要转义反斜杠本身,它是json中unicode转义序列的第一个字符:
test <- '{"x" : "Z\\u00FCrich"}'
cat(test)
Run Code Online (Sandbox Code Playgroud)
所以我的问题是:在R中给出一个大的json字符串,我怎样才能解除所有转义的unicode序列?即我如何\uxxxx用相应的unicode字符替换所有出现的?同样,\uxxxx这里表示一个6个字符的实际字符串,以反斜杠开头.所以一个unescape函数应该满足:
#Escaped string
escaped <- "Z\\u00FCrich"
#Unescape unicode
unescape(escaped) == "Zürich"
#This is the same thing
unescape(escaped) == "Z\u00FCrich"
Run Code Online (Sandbox Code Playgroud)
可能使事情复杂化的一件事是,如果反斜杠本身在json中使用另一个反斜杠进行转义,则它不是 unicode转义序列的一部分.例如,unescape还应满足:
#Watch out for escaped backslashes
unescape("Z\\\\u00FCrich") == "Z\\\\u00FCrich"
unescape("Z\\\\\\u00FCrich") == "Z\\\\ürich"
Run Code Online (Sandbox Code Playgroud)