我想弄清楚是否可以使用geom_line连接缺失值.例如,在下面的链接中,在方面F的时间3处存在缺失值.在这种情况下,我想要一条连接时间2和4的线.有没有办法实现这个目标?
https://farm8.staticflickr.com/7061/6964089563_b150e0c2a6.jpg

我有一个累积值的数据框,如下所示:
head(cumulative)
individual series Time Value
1 A x 1 -1.008821
2 A x 2 -2.273712
3 A x 3 -3.430610
4 A x 4 -4.618860
5 A x 5 -4.893075
6 A x 6 -5.836532
Run Code Online (Sandbox Code Playgroud)
我正在密谋:
ggplot(cumulative, aes(x=Time,y=Value, shape=series)) +
geom_point() +
geom_line(aes(linetype=series)) +
facet_wrap(~ individual, ncol=3)
Run Code Online (Sandbox Code Playgroud) 我有一个嵌套的hashmap,其结构类似于以下内容:
(def pathmap {:order {:genus {:species {:cat2 "data", :cat1 "data"}}}})
Run Code Online (Sandbox Code Playgroud)
我需要的是像assoc-in这样的函数,它允许我将新的键值对添加到最里面的嵌套映射,而不是简单地替换已存在的那些.例如:
(my-assoc-merge pathmap [:order :genus :species] {:cat3 "data"})
;=> {:order {:genus {:species {:cat3 "data" :cat2 "data", :cat1 "data"}}}}
Run Code Online (Sandbox Code Playgroud)
我认为通过稍微改变assoc-in函数以使用merge-with和union,我可以很容易地做到这一点:
(defn my-assoc-merge
[m [k & ks] v]
(if ks
(assoc m k (my-assoc-merge (get m k) ks v))
(assoc m k (merge-with clojure.set/union (get m k '{}) v))))
Run Code Online (Sandbox Code Playgroud)
不幸的是,这给了我错误"CompilerException java.lang.UnsupportedOperationException:此类型不支持count:关键字,编译:(core.clj:34:12)".我哪里错了?
我目前试图制作的图表在两个凳子之间略有下降.我想制作一个由堆叠和标记的框组成的直方图.以下是我正在讨论的事情的一个例子,摘自"纽约时报"最近的一篇文章:
http://farm8.staticflickr.com/7109/7026409819_1d2aaacd0a.jpg
是否可以使用ggplot2实现这一目标?
为了放大这个问题,到目前为止,我所拥有的是:
dfr <- data.frame(
name = LETTERS[1:26],
percent = rnorm(26, mean=15)
)
ggplot(dfr, aes(x=percent, fill=name)) + geom_bar() +
stat_bin(geom="text", aes(label=name))
Run Code Online (Sandbox Code Playgroud)
......我显然做错了.最终,我理想的是沿着下面手动修改的图形的线条,其中(例如)字母A到M填充一个阴影,N到Z填充另一个阴影.
http://farm8.staticflickr.com/7116/7026536711_4df9a1aa12.jpg
我正在使用一个Java包来输出文本到控制台,我需要在字符串中捕获该文本,但我不知道如何做到这一点.从查看Clojure文档看来,我所要做的就是将java调用包装起来,with-out-str但这对我不起作用.
最小代码示例:如果我尝试
(with-out-str
(.println (System/out) "foo"))
Run Code Online (Sandbox Code Playgroud)
我希望得到一个值为"foo"的字符串,但它仍然输出到控制台.我究竟做错了什么?