小编hrb*_*str的帖子

月 - 年条形图以切面和填写年份; 以char格式输入数据作为日期

环境:赢得7 HP,R v2.15.1

我希望得到的:

  • 绘制y(数字)vs x(日期)
  • 标签月 - 月缩写,排序mon + year,las2垂直对齐
  • 颜色填充年份
  • 按年分面

我在这个论坛中阅读了不同的主题后尝试了不同的方法,但无法得到我需要的东西.需要帮忙.附加样本数据和结果.

我的样本数据

x <- c("04-01-10","05-01-10","06-01-10","07-01-10","08-01-10","09-01-10","10-01-10","11-01-10","12-01-10","01-01-11","02-01-11","03-01-11","04-01-11","05-01-11","06-01-11","07-01-11","08-01-11","09-01-11","10-01-11","11-01-11","12-01-11","01-01-12","02-01-12","03-01-12","04-01-12","05-01-12","06-01-12")
y <- c(120,210,130,160,190,210,80,70,110,120,140,160,130,200,110,180,210,200,90,60,100,100,120,170,100,180,120)
Run Code Online (Sandbox Code Playgroud)

x是mm-dd-yy格式的日期(字符)tz:IST(加尔各答/亚洲)数据每个月只有单个y值,这个值在月份的开始日期

转换为数据框架

MySample <- data.frame(x) ## convert to dataframe 
MySample$y <- y
Run Code Online (Sandbox Code Playgroud)

加载所需的库

require(lubridate) 
require(ggplot2)
Run Code Online (Sandbox Code Playgroud)

MySample Base Plot

1)绘制x对y

    ggplot(MySample, aes(MySample$x, MySample$y)) + 
        geom_bar(y=MySample$y,stat="identity") 
Run Code Online (Sandbox Code Playgroud)

给我基础情节结果

2)绘图x vs y + fill =年

    ggplot(MySample, aes(MySample$x, MySample$y, fill=year(MySample$x))) + 
        geom_bar(y=MySample$y,stat="identity")
Run Code Online (Sandbox Code Playgroud)

给了我填充,但有2010年,2010,2010.5,2011,2011.5,2012填写5年

我尝试了不同的方法,但遇到了一个或另一个错误.

3)绘图x vs y + fill =年+ facet_grid(年)

    ggplot(MySample, aes(x, y, fill=year(x))) + 
        geom_bar(y=MySample$y,stat="identity") + 
        facet_grid(. ~ year(MySample$x)) 
Run Code Online (Sandbox Code Playgroud)

获取:layout_base中的错误(data,cols,drop = drop):至少一个图层必须包含用于构面的所有变量 …

r ggplot2

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

重复或循环参数

我对R很熟悉,因为我已经使用它几年了.不幸的是,我不太精通创建涉及循环或重复方程的函数.问题如下:

我有一个包含超过1000个值的向量.我想计算两个相等大小的并置方法与该向量的子集之间的绝对差值.

这是一个例子.

我有长度为8的向量(vec)

 [1]  0.12472963  1.15341289 -1.09662288 -0.73241639  0.06437658 -0.13647136 -1.52592048  1.46450084  
Run Code Online (Sandbox Code Playgroud)

我想计算前2个值的平均值(0.12472963,1.15341289)并获得与以下2个值(-1.09662288 -0.73241639)的平均值的绝对差值,然后沿着向量工作.

在这种情况下,我可以轻松使用以下等式:

abs(mean(vec[1:2])-mean(vec[3:4]))
Run Code Online (Sandbox Code Playgroud)

并逐步增加每个数字1,以便手动向下工作直到向量结束.我会得到以下矢量.

[1]  1.553591  0.3624149  0.8784722  0.497176  0.005337574
Run Code Online (Sandbox Code Playgroud)

然而,我希望有一个自动例程,使我可以在长向量上执行此操作并更改用于计算均值的值的数量.

在我看来它应该相对简单,但我不知道从哪里开始.

r vector repeat

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

使用ggplot和基本绘图函数获得不同的结果

我在这里有一张桌子:http://ulozto.cz/xAeP3Ahn/res2-txt.我试图从中得出一个点图.

我读了我的桌子:

res2<-read.table("res2.txt", header = TRUE, sep="\t")
Run Code Online (Sandbox Code Playgroud)

并创建2个图.

(1)这是单个绘图功能的脚本:

plot(res2$V2, res2$dist06, type = "n")
points(subset(res2$V2, year == 2006), subset(res2$dist06, year == 2006), pch = 19, col   = "red", cex = 1)
points(subset(res2$V2, year == 2007), subset(res2$dist06, year == 2007), pch = 19, col = "green", cex = 1)
points(subset(res2$V2, year == 2008), subset(res2$dist06, year == 2008), pch = 19, col = "black", cex = 1)
points(subset(res2$V2, year == 2009), subset(res2$dist06, year == 2009), pch = 19, …
Run Code Online (Sandbox Code Playgroud)

charts plot r subset

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

在R中搜索javascript网站

我想从这个网址中删除匹配时间和日期:

http://www.scoreboard.com/game/rosol-l-goffin-d-2014/8drhX07d/#game-summary

通过使用chrome dev工具,我可以看到这似乎是使用以下代码生成的:

<td colspan="3" id="utime" class="mstat-date">01:20 AM, October 29, 2014</td>
Run Code Online (Sandbox Code Playgroud)

但这不是源html.

我认为这是因为它的java(纠正我,如果我错了).如何使用R抓取此信息?

javascript screen-scraping r rvest

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

如何用R获取Windows机器的磁盘空间?

如何获取Windows计算机的总磁盘空间/可用磁盘空间?

如果没有R函数,可能有一个我可以在R system函数中使用的Windows命令,但我无法找到该命令.

windows cmd r

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

在ggplot2中绘制bootstrap输出的中位数,置信区间

我有一个数据框df(见下文)

dput(df)
    structure(list(x = c(49, 50, 51, 52, 53, 54, 55, 56, 1, 2, 3, 
    4, 5, 14, 15, 16, 17, 2, 3, 4, 5, 6, 10, 11, 3, 30, 64, 66, 67, 
    68, 69, 34, 35, 37, 39, 2, 17, 18, 99, 100, 102, 103, 67, 70, 
    72), y = c(2268.14043972082, 2147.62290922552, 2269.1387550775, 
    2247.31983098201, 1903.39138268307, 2174.78291538358, 2359.51909126411, 
    2488.39004804939, 212.851575751527, 461.398994384333, 567.150629704352, 
    781.775113821961, 918.303706148872, 1107.37695799186, 1160.80594193377, 
    1412.61328924168, 1689.48879626486, 260.737164468854, 306.72700499362, 
    283.410379620422, 366.813913489692, 387.570173754128, 388.602676983443, 
    477.858510450125, 128.198042456082, 535.519377609133, 1028.8780498564, …
Run Code Online (Sandbox Code Playgroud)

bootstrapping r ggplot2 non-linear-regression

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

RStudio:鲁克不行?

我想使用Rook构建一个简单的Web服务器,但是在R-Studio中尝试时我遇到了一些奇怪的错误:

代码

library(Rook)
s <- Rhttpd$new()
s$start()
print(s)
Run Code Online (Sandbox Code Playgroud)

返回相当无用的错误

"listenPort> 0时出错:比较(6)仅适用于原子和列表类型".

在简单的R-Console中尝试相同的代码时,一切正常 - 所以我想了解为什么会发生这种情况以及如何解决它.

RStudio版本为0.99.484,R为R 3.2.2

r r-rook-package

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

r 中用户定义函数中的逻辑参数

我正在尝试在 r 中编写一个函数,其中包含带有三个选项的命名参数。(我想做的是找到正态曲线的右尾部、左尾部或两个尾部的面积。)这可能吗?我已经想出了这个,但是当我尝试使用时出现错误right=BOTH.

\n\n
st.pnorm<-function(x,\xc2\xb5,\xc3\xb8,right=c(\'TRUE\',\'FALSE\',\'BOTH\')){  \n  if (right==FALSE) return({pnorm((x-\xc2\xb5)/\xc3\xb8)})  \n  if (right==TRUE) return({1-(pnorm((x-\xc2\xb5)/\xc3\xb8))})  \n  if (right==BOTH) return({x*2})  \n}   \n
Run Code Online (Sandbox Code Playgroud)\n\n
\n

st.pnorm(19.4,11,8.4,right=\'BOTH\')
\n st.pnorm(19.4, 11, 8.4, right = "BOTH") 中的错误:
\n 未找到对象 \'BOTH\'

\n
\n\n

(我知道 x*2 不正确,但我想看看在实际编写代码之前是否可以使其在结构上工作。)

\n

r user-defined-functions

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

R网络刮板与jsessionid

我正在测试R中的一些web scrape脚本.我已经阅读了很多教程,文档并尝试了不同的东西,但到目前为止还没有成功.

我试图抓取的URL就是这个.它有公共,政府数据,没有针对网络抓取工具的声明.它是葡萄牙语,但我相信这不会是一个大问题.

它显示了一个包含多个字段的搜索表单.我的测试是搜索来自特定州("RJ",在这种情况下,该字段是"UF")和城市("Rio de Janeiro",在"MUNICIPIO"字段中)的数据.通过单击"Pesquisar"(搜索),它显示以下输出:

在此输入图像描述

使用Firebug,我发现它调用的URL(使用上面的参数)是:

http://www.dataescolabrasil.inep.gov.br/dataEscolaBrasil/home.seam?buscaForm=buscaForm&codEntidadeDecorate%3AcodEntidadeInput=&noEntidadeDecorate%3AnoEntidadeInput=&descEnderecoDecorate%3AdescEnderecoInput=&estadoDecorate%3A**estadoSelect=33**&municipioDecorate%3A**municipioSelect=3304557**&bairroDecorate%3AbairroInput=&pesquisar.x=42&pesquisar.y=16&javax.faces.ViewState=j_id10
Run Code Online (Sandbox Code Playgroud)

该网站使用jsessionid,使用以下内容可以看到:

library(rvest)
library(httr)
url <- GET("http://www.dataescolabrasil.inep.gov.br/dataEscolaBrasil/")
cookies(url)
Run Code Online (Sandbox Code Playgroud)

知道它使用了jsessionid,我使用cookies(url)检查这些信息,并将其用于这样的新URL:

url <- read_html("http://www.dataescolabrasil.inep.gov.br/dataEscolaBrasil/home.seam;jsessionid=008142964577DBEC622E6D0C8AF2F034?buscaForm=buscaForm&codEntidadeDecorate%3AcodEntidadeInput=33108064&noEntidadeDecorate%3AnoEntidadeInput=&descEnderecoDecorate%3AdescEnderecoInput=&estadoDecorate%3AestadoSelect=org.jboss.seam.ui.NoSelectionConverter.noSelectionValue&bairroDecorate%3AbairroInput=&pesquisar.x=65&pesquisar.y=8&javax.faces.ViewState=j_id2")
html_text(url)
Run Code Online (Sandbox Code Playgroud)

好吧,输出没有数据.实际上,它有一条错误消息.翻译成英文,它基本上说会话已经过期.

我认为这是一个基本的错误,但我四处寻找并找不到克服这个问题的方法.

r web-scraping httr rvest

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

从html表中抓取数据

我正在尝试使用rvest包从CABI入侵物种纲要中提取入侵植物物种位置的数据.

看了几个教程,我发现我应该能够很容易地从表中抓取数据.但是,我一直遇到困难.

假设我想要品种Brassica tournefortii的位置数据.我应该能够使用此代码,该代码使用此处概述的技术来获取物种记录位置的详细信息.

 library(rvest)
 isc<-read_html("http://www.cabi.org/isc/datasheet/50069")
 isc %>% 
 html_node("#toDistributionTable td:nth-child(1)") %>%
 html_text()
Run Code Online (Sandbox Code Playgroud)

但是,运行此代码我收到错误

Error: No matches
Run Code Online (Sandbox Code Playgroud)

我是webscraping的新手.我做错了什么吗?

html r web-scraping rvest

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