小编And*_*eas的帖子

如何很好地注释ggplot2(手动)

使用ggplot2我通常使用geom_text和类似的东西position=jitter注释我的情节.

但是 - 对于一个不错的情节,我经常发现值得手动注释.如下:

data2 <- structure(list(type = structure(c(5L, 1L, 2L, 4L, 3L, 5L, 1L, 
2L, 4L, 3L, 5L, 1L, 2L, 4L, 3L, 5L, 1L, 2L, 4L, 3L), .Label = c("EDS", 
"KIU", "LAK", "MVH", "NA*"), class = "factor"), value = c(0.9, 
0.01, 0.01, 0.09, 0, 0.8, 0.05, 0, 0.15, 0, 0.41, 0.04, 0.03, 
0.52, 0, 0.23, 0.11, 0.02, 0.64, 0.01), time = c(3L, 3L, 3L, 
3L, 3L, 6L, 6L, 6L, 6L, 6L, 15L, 15L, …
Run Code Online (Sandbox Code Playgroud)

r ggplot2

42
推荐指数
2
解决办法
6万
查看次数

在一个刻面的ggplot条形图中y实验室的百分比?

在ggplot中做facet我经常喜欢使用百分比而不是计数.

例如

test1 <- sample(letters[1:2], 100, replace=T)
test2 <- sample(letters[3:8], 100, replace=T)
test <- data.frame(cbind(test1,test2))
ggplot(test, aes(test2))+geom_bar()+facet_grid(~test1)
Run Code Online (Sandbox Code Playgroud)

这很容易,但如果N在方面A上与方面B不同,那么我认为比较百分比会更好,这样每个方面的总和达到100%.

你会怎么做到这一点?

希望我的问题有道理.

真诚.

r ggplot2

32
推荐指数
3
解决办法
2万
查看次数

初学者通过Python学习屏幕抓取的最佳方式

这可能是难以回答的问题之一,但这里有:

我不认为我的自编程员 - 但我想:-)我已经学会了R,因为我厌倦了spss,而且因为一位朋友向我介绍了这种语言 - 所以我不是一个完全陌生的人编程逻辑.

现在我想学习python - 主要是做屏幕抓取和文本分析,还用于用Pylons或Django编写webapps.

那么:我应该如何学习使用python进行屏幕刮擦?我开始经历那些杂乱无章的文档,但我觉得很多"魔术"正在进行 - 毕竟 - 我正在努力学习,而不仅仅是做.

另一方面:没有理由重新发明轮子,如果Scrapy要屏蔽Django对网页的影响,那么毕竟值得直接进入Scrapy.你怎么看?

哦 - 顺便说一句:屏幕抓取的那种:我想要报道网站(即相当复杂和大的)来提及政治家等等 - 这意味着我需要每天,递增和递归地刮 - 我需要记录结果进入各种各样的数据库 - 这引出了一个奖励问题:每个人都在谈论非SQL数据库.我是否应该立即学会使用例如mongoDB(我认为我不需要强烈的一致性),或者我想做什么是愚蠢的?

感谢您的任何想法 - 如果这是一般被认为是一个编程问题,我道歉.

python lxml screen-scraping beautifulsoup scrapy

31
推荐指数
2
解决办法
2万
查看次数

熔化成两个可变柱

我在数据框中有以下变量:

[1] "Type"   "I.alt"  "idx06"  "idx07"  "idx08" "farve1" "farve2"
Run Code Online (Sandbox Code Playgroud)

如果我做:

dm <- melt(d, id=c("Type","I.alt"))
Run Code Online (Sandbox Code Playgroud)

我得到这些变量:

"Type"     "I.alt"    "variable" "value"   
Run Code Online (Sandbox Code Playgroud)

其中"idx06","idx07","idx08","farve1","farve2"以"变量"表示.

但我真正想要的是这样的:

"Type"     "I.alt"    "variable" "value" "variable2" "value2"
Run Code Online (Sandbox Code Playgroud)

其中"farve1"和"farve2"表示在variable2和value2中.

我想要这样做的原因是,我想要的是,如果值下降则线条颜色为绿色,如果上升则为红色. 编辑:Shane已经展示了如何通过融合的两个融合来重塑数据.但是我的策略从一开始就构思错误 - 用一句话说错了.请参阅我对Shane解决方案的评论.

ggplot(dm, aes(x=variable,y=value,group=Type,col=variable2, label=Type,size=I.alt))+
geom_line()+
geom_text(data=subset(dm, variable=="idx08"),hjust=-0.2, size=2.5)+
theme_bw()+
scale_x_discrete(expand=c(0,1))+
opts(legend.position="none")
Run Code Online (Sandbox Code Playgroud)

我想我需要铸造熔化的框架 - 但我无法弄明白.数据:

d <- structure(list(Type = structure(c(8L, 21L, 23L, 20L, 6L, 14L, 
3L, 24L, 2L, 28L, 32L, 22L, 15L, 29L, 1L, 17L, 18L, 33L, 25L, 
13L, 30L, 11L, 26L, 9L, 12L, 4L, 5L, 27L, 16L, 19L, 10L, …
Run Code Online (Sandbox Code Playgroud)

r ggplot2 reshape

26
推荐指数
1
解决办法
3万
查看次数

例如%+%做什么?在R

这是一个非常基本的问题 - 但显然谷歌并不擅长搜索像"%+%"这样的字符串.所以我的问题是 - 什么时候和"%+%"和类似的使用.我猜它是一种合并?

编辑:好的 - 我相信我的问题得到了回答.%X%是某种二元运算符.所以现在我想我会谷歌知道如何/何时使用这些.我的问题部分受到昨天问题的启发 - 但只是在我在"学习R"博客上看到这篇文章之后.产生我问题的这段话是这样的:
为了做到这一点,将创建一个包含年度总计的新数据框,然后与现有数据集合并(两个数据框中的变量名称应该相同才能生效).然后我们只更改绘图所基于的数据帧.

## add total immigration figures to the plot
total <- cast(df.m, Period ~ ., sum)
total <- rename(total, c("(all)" = "value"))
total$Region <- "Total"
df.m.t <- rbind(total, df.m)
c1 <- c %+% df.m.t
Run Code Online (Sandbox Code Playgroud)

r operators

23
推荐指数
2
解决办法
1万
查看次数

如何在vim中使用模板

这实际上是一个新手问题 - 但基本上,我如何为某些文件类型启用模板.

基本上,我只是希望模板插入一个类别的标题,即我发现有用的一些函数,以及加载的库等.

我解释

:help templates
Run Code Online (Sandbox Code Playgroud)

我应该把它放在我的vimrc中的方式

au BufNewFile,BufRead ~/.vim/skeleton.R
Run Code Online (Sandbox Code Playgroud)

运行R脚本然后显示可能发生的事情,但显然不会:

--- Auto-Commands ---
Run Code Online (Sandbox Code Playgroud)

这可能是因为模板由命令组成(并且在skeleton.R中没有这样的命令) - 在这种情况下,我只是希望它插入一个文本标题(由skelton.R组成).

对不起,如果这个问题是令人头疼的傻瓜; - /

vim r

20
推荐指数
3
解决办法
2万
查看次数

make gvim将换行视为新行

当我在vim/gvim中按"j"或向下箭头时,光标移动到下一行.这对编写代码很有用.

然而,当写文本时,行通常比文本长得多.因此,我不能轻易地在这个词之上得到这个词.所以在几乎所有的编辑器和文本处理器中按向上箭头HERE↑会将光标放在"单词"前面.但是在gvim中,光标移动到"代码"之间的空白行.什么时候".

我使用wrap(set:wrap)和linebreak(set:lbr).

凭借vim的所有力量 - 这必须是直截了当的吗?

vim line-breaks word-wrap

15
推荐指数
1
解决办法
1432
查看次数

每个方面的总和百分比 - 尊重"填充"

我正在尝试创建一个刻面的条形图,每个方面的百分比加起来为100.这个问题的解决似乎是一个组合group..density...然而 - 在我看来,这group与之相矛盾fill.

数据:

test <- data.frame(
     test1 = sample(letters[1:2], 100, replace = TRUE), 
     test2 = sample(letters[3:8], 100, replace = TRUE)
 )
Run Code Online (Sandbox Code Playgroud)

这使得百分比正确:

ggplot(test, aes(test2)) +
     geom_bar(aes(y = ..density.., fill=test2,group=test1)) + 
     facet_grid(~test1)
Run Code Online (Sandbox Code Playgroud)

您可以看到的总线fill被覆盖: 每个方面的百分比总和为100

但是,下面的代码尊重fill但给我错误的百分比(整个图表的总和为100)(使用..density ..):

ggplot(test, aes(test2)) +
     geom_bar(aes(y = ..count../sum(..count..), fill=test2)) + 
     facet_grid(~test1)
Run Code Online (Sandbox Code Playgroud)

总图表的百分比总和为100

相关:我的这个老问题:在一个刻面的ggplot条形图中y实验室的百分比?.

是的 - 我可以创建其他数据,但我觉得这属于表示层.实际上这感觉就像一个bug?

r ggplot2

14
推荐指数
1
解决办法
5138
查看次数

对于每个组,汇总数据框中所有变量的均值(ddply?split?)

一周前,我会手动完成此操作:按组分组数据到新数据帧.对于每个数据帧计算意味着每个变量,然后是rbind.非常笨重......

现在,我已经了解splitplyr,我想必须有使用这些工具的更简单的方法.请不要证明我错了.

test_data <- data.frame(cbind(
var0 = rnorm(100),
var1 = rnorm(100,1),
var2 = rnorm(100,2),
var3 = rnorm(100,3),
var4 = rnorm(100,4),
group = sample(letters[1:10],100,replace=T),
year = sample(c(2007,2009),100, replace=T)))

test_data$var1 <- as.numeric(as.character(test_data$var1))
test_data$var2 <- as.numeric(as.character(test_data$var2))
test_data$var3 <- as.numeric(as.character(test_data$var3))
test_data$var4 <- as.numeric(as.character(test_data$var4))
Run Code Online (Sandbox Code Playgroud)

我和两个人都在玩,ddply但是我无法生产出我想要的东西 - 即每个小组都有这样一张桌子

group a |2007|2009|
________|____|____|
var1    | xx | xx |
var2    | xx | xx |
etc.    | etc| ect|
Run Code Online (Sandbox Code Playgroud)

也许d_ply有些odfweave输出会起作用.非常感谢投入.

ps我注意到data.frame将rnorm转换为data.frame中的因子?我怎么能避免这种情况 - 我(rnorm(100)不起作用所以我必须像上面那样转换成数字

r plyr dataframe

13
推荐指数
5
解决办法
1万
查看次数

手动在不同方面注释具有不同标签的ggplot

JD Long帮我解决了这个问题:关于手动注释的问题.

但是有可能在刻面图上做类似的事情,这样标签样式对应于线型(aestetics),并且我可以单独注释不同的方面吗?

一些数据:

funny <- structure(list(Institution = structure(c(1L, 1L, 1L, 1L, 2L, 
2L, 2L, 2L, 3L, 3L, 3L, 3L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 3L, 
3L, 3L, 3L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 1L, 
1L, 1L, 1L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L), .Label = c("Q-branch", 
"Some-Ville", "Spectre"), class = "factor"), Type = structure(c(5L, 
6L, 1L, 3L, 5L, 6L, 2L, 4L, 5L, 6L, …
Run Code Online (Sandbox Code Playgroud)

r ggplot2

11
推荐指数
1
解决办法
5306
查看次数