小编And*_*rew的帖子

使用两个图例更改ggplot中的两个图例标题

我的ggplot上有两个传说,有两个不同的图例标题(自动创建ggplot()).现在,我想改变这个传奇的标题. + labs(colour = "legend name")只更改第二个图例标题.我怎么能改变第一个呢?

样本数据:

dataset <- structure(list(date = structure(c(1264572000, 1266202800, 1277362800), 
class = c("POSIXt", "POSIXct"), tzone = ""), 
x1 = c(-0.00183760994446658, 0.00089738603087497, 0.000423513598318936), 
x2 = c("approach x","approach y","approach z"), 
x3 = c("Type1", "Type1", "Type2")) ,
.Names = c("date", "data","code","type"),
row.names = c("1", "2", "3"), class = "data.frame")
Run Code Online (Sandbox Code Playgroud)

这是我制作情节的代码:

p <- ggplot(dataset, aes(x=date, y=data)) +
geom_point(aes(shape = factor(type), color = code)) +
scale_shape_manual(value=c(23,15))
print(p)
Run Code Online (Sandbox Code Playgroud)

图例标题默认为:"factor(type)"和"code": 在此输入图像描述

r legend ggplot2

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

如何在R中模拟SQL"分区依据"?

如何在R数据帧上执行分析函数,如Oracle ROW_NUMBER(),RANK()或DENSE_RANK()函数(请参阅http://www.orafaq.com/node/55)?CRAN包"plyr"非常接近,但仍然不同.

我同意每个功能的功能可以以特别的方式实现.但我主要担心的是表现.为了记忆和速度,最好避免使用连接或索引访问.

sql r dense-rank dplyr data.table

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

编织DT ::没有pandoc的数据表

我试图用DT::datatableR输出一个格式良好的交互式表格.

...唯一的问题是我想要一个heroku工作为我编织文档,并且我已经了解了RStudio并且rmarkdown::render()在引擎盖下使用了pandoc - 但是pandoc并没有在剥离的R Buildpack中用于heroku.

有没有办法让旧的降价引擎(knitr:knit2htmlmarkdown:markdownToHTML)传递强大的javascript datatable?或者更确切地说,在使用pandoc的情况下生成下面的样本表?

这是一个最小的例子:

testing.Rmd

---
title: "testing"
output: html_document
---

this is a datatable table
```{r test2, echo=FALSE}
library(DT)
DT::datatable(
  iris, 
  rownames = FALSE,
  options = list(pageLength = 12, dom = 'tip')
)
```

this is regular R output
```{r}
head(iris)

```
Run Code Online (Sandbox Code Playgroud)

knit_test.R

require(knitr)
knitr::knit2html('testing.Rmd')
Run Code Online (Sandbox Code Playgroud)

产生:

this is a datatable table <!–html_preserve–>

<!–/html_preserve–>
this is regular R output

head(iris)
## …
Run Code Online (Sandbox Code Playgroud)

r datatables pandoc knitr

14
推荐指数
2
解决办法
1297
查看次数

跨多行的字符串连续,没有换行符

我使用RODBC库将数据导入R.我有一个很长的查询,我想传递一个变量,就像这个 SO用户.

问题是R将我的查询中的空格/回车符解释为换行符'\n'.

这个问题的公认解决方案建议简单地将文本拆分成块然后paste()一起 - 这是有效的,但理想情况下我想保持空白不变 - 这样可以更容易地在数据库中测试/验证查询的行为在粘贴到R之前

在其他语言中,我很熟悉有一个简单的行继续符 - 实际上,对接受的答案的一些评论正在寻找类似于python的方法\.

我发现strwrap在R讨论列表的内容中使用深入的解决方法,所以为了使互联网更好,我将在此处发布.但是,如果有人能指出更优雅/直接的解决方案,我将很乐意接受你的回答.

newline r word-wrap end-of-line rodbc

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

将RMySQL包添加到R失败(在Windows上)?

我无法弄清楚为什么我的RMySQL软件包无法安装 - 这就是我得到的:

> install.packages('RMySQL',type='source')
trying URL 'http://cran.mirrors.hoobly.com/src/contrib/RMySQL_0.7-5.tar.gz'
Content type 'application/x-gzip' length 160769 bytes (157 Kb)
opened URL
downloaded 157 Kb

* installing *source* package 'RMySQL' ...
ERROR: configuration failed for package 'RMySQL'
* removing 'C:/PROGRA~1/R/R-212~1.0/library/RMySQL'

The downloaded packages are in '(foo)'

Warning message:
In install.packages("RMySQL", type = "source") : installation of package 'RMySQL' had    non-zero exit status
Run Code Online (Sandbox Code Playgroud)

我不认为这是MySQL安装的问题,因为正确的值似乎在注册表中:

> Sys.getenv('MYSQL_HOME')
                 MYSQL_HOME "C:/PROGRA~1/MySQL/MYSQLS~1.1/" 
> readRegistry("SOFTWARE\\MySQL AB", hive="HLM", maxdepth=2)
$`MySQL Server 5.1`
$`MySQL Server 5.1`$DataLocation
[1] "C:\\Documents and Settings\\All Users\\Application Data\\MySQL\\MySQL …
Run Code Online (Sandbox Code Playgroud)

mysql r package rmysql

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

为什么以及在哪里将新行字符引入c()?

希望有人可以帮助我理解为什么错误的\n字符出现在我在R中创建的字符串向量中.

尝试导入并清理固定宽度格式的非常宽的数据文件(http://www.state.nj.us/education/schools/achievement/2012/njask6/,'Text file for data runs').遵循加州大学洛杉矶分校关于使用read.fwf和这个优秀的SO问题的教程,在导入后给出列名.

因为文件非常宽,所以列标题很长 - 所有这些都在一起,不到29,800个字符.我将它们作为简单的字符串向量传递:

column_names <- c(...)
Run Code Online (Sandbox Code Playgroud)

我会把这个丑陋的垃圾扔给你,但是我把整个东西放在了pastebin上.

当我注意到我的一些子集返回0行时,正在清理和转换一些变量以进行分析.在困惑之后(我拼错了什么?)它意识到我的列标题中已经引入了一堆'\n'换行符.

如果我遍历我创建的column_names向量

for (i in 1:length(column_names)) {
  print(column_names[i])
}
Run Code Online (Sandbox Code Playgroud)

我看到第81行中间的第一个换行符 -

特殊科学编号登记科学

我尝试解决这个问题的途径:

1)这是关于我的环境的吗?我正在使用R中的常规脚本编辑器,我的线条换行- 但是我的屏幕上的断点与\n字符的位置不匹配,这对我来说表明它不是R脚本编辑器.

2)是否有GUI设置?做了一些搜索,却找不到任何东西.

3)有模式吗?似乎换行字符大约每4000个字符插入一次.对R/S原语进行了一些阅读以试图弄清楚这是否与基本的R数据结构有关,但很快就在我脑海中.

我尝试将长串分解成更短的块,然后将它们组合起来,这似乎解决了这个问题.

column_names.1 <- c(...)
column_names.2 <- c(...)
column_names_combined <- c(column_names.1, column_names.2)
Run Code Online (Sandbox Code Playgroud)

所以我有一个即时的解决方法,但很想知道这里发生了什么.

一些与字符向量问题有关的帖子建议我运行内存配置文件:

  memory.profile()
        NULL      symbol    pairlist     closure environment     promise 
           1        9572      220717        4734        1379        5764 
    language     special     builtin        char     logical     integer 
       63932 …
Run Code Online (Sandbox Code Playgroud)

text r

9
推荐指数
1
解决办法
477
查看次数

以编程方式将Access(.mdb)文件读入R中,用于Windows和Mac

我正在尝试编写一个将纽约州教育数据读入R 的开放数据包.该数据作为Access数据库提供.

我想编写一个下载,读取和导入这些文件的函数,我希望它能跨平台支持.现有方法建议安装32位版本的R,这不适合编程访问.

#RStats的游表明,这是一种常见的痛点(1,2,3,4)

在OS X/Linux上,只要您有第三方库,就可以mdb.getHmisc 包中使用mdb-tools.但这似乎对Windows没什么帮助.

一个公认的答案将把上面.mdb链接的文件读入Windows,OS X和Linux的R中.

ms-access r

8
推荐指数
1
解决办法
3424
查看次数

在R包中定义自定义dplyr方法

我有一个自定义的包summary(),print()对于具有特定类对象的方法.这个软件包还使用了很棒dplyr的数据包进行操作 - 我希望我的用户能够编写同时使用我的软件包和dplyr的脚本.

其他人在这里这里注意到的一个障碍是dplyr动词不保留自定义类 - 这意味着ungroup命令可以剥离我的自定义类的data.frames,从而搞乱方法调度summary等.

Hadley说"正确执行此操作取决于您 - 您需要为每个dplyr方法定义一个方法,以便正确恢复所有类和属性"并且我正在尝试接受建议 - 但我无法弄清楚如何正确包装dplyr动词.

这是一个简单的玩具示例.假设我已经定义了一个cars类,我有一个自定义summary.

这很有效

library(tidyverse)

class(mtcars) <- c('cars', class(mtcars))

summary.cars <- function(x, ...) {
  #gather some summary stats
  df_dim <- dim(x)
  quantile_sum <- map(mtcars, quantile)

  cat("A cars object with:\n")
  cat(df_dim[[1]], 'rows and ', df_dim[[2]], 'columns.\n')

  print(quantile_sum)

}

summary(mtcars)
Run Code Online (Sandbox Code Playgroud)

这是问题所在

small_cars <- mtcars %>% filter(cyl < 6)
summary(small_cars)
class(small_cars)
Run Code Online (Sandbox Code Playgroud)

那个summary调用small_cars …

r r-s3 dplyr r-package tidyverse

8
推荐指数
2
解决办法
426
查看次数

舍入到 SQL 中最接近的奇数整数

我发现自己有点不太可能*需要四舍五入到 SQL 中最接近的 ODD 整数。关于如何舍入到最近的 N(2,5,10 等)here有一个很好的解决方案,但没有明确说明奇数。使用 Oracle 11gR2,如果有特定于 Oracle 的解决方案。

*需要将我的数据加入从这项研究中剥离的表格。作者使用了 2 的一致 bin 宽度……但有时它是偶数,而其他则是奇数。

sql rounding

4
推荐指数
1
解决办法
2847
查看次数

R XML + XPath - 具有多个条件的getNodeSet

我是XPath的新手 - 请放轻松我.

无法在目标页面上为不具有大量结构的元素提取XPath.

数据集是新泽西州学校的成绩单.个人报告卡看起来像这样

我已经想出如何拉出带有summary标签的表格:

url <- paste("http://education.state.nj.us/rc/rc11/rcreport.php?c=",
  all_sch[i,1],";d=",all_sch[i,2],";s=",all_sch[i,3],sep = '')
doc = htmlParse(url)
admin_salaries = getNodeSet(doc, '//table[@summary="Administrative Salaries and Benefits"]')
Run Code Online (Sandbox Code Playgroud)

但是在没有很多额外识别信息可以解决的情况下遇到麻烦.

例如,具有学校名称和分区的表格如下所示:

        <table cellpadding="0" cellspacing="0">
          <tr>
            <td><strong>SCHOOL:</strong></td>
            <td>&nbsp;New Jersey Ave</td>
          </tr>
          <tr>
            <td><strong>COUNTY:</strong></td>
            <td>&nbsp;Atlantic</td>
          </tr>
          <tr>
            <td><strong>DISTRICT:</strong></td>
            <td>&nbsp;Atlantic City</td>
          </tr>
        </table>
Run Code Online (Sandbox Code Playgroud)

我的策略是"找到表格并拥有文本的节点 COUNTY

尽可能多地阅读关于XPath的内容,我正在尝试这样做:

names = getNodeSet(doc,'//table and //*[contains(text(),"COUNTY")]')
Run Code Online (Sandbox Code Playgroud)

但它不是返回表节点,而是给我一个布尔TRUE值.

所以,问题是:我如何使用XPath查找具有COUNTY和SCHOOL文本的表?

我已经尝试了很多其他策略,但收效甚微.其他人建议的一种方法就是使用以下方法提取每个表数据单元:

xpathApply( htmlTreeParse(url, useInt=T), "//td", function(x) xmlValue(x))
Run Code Online (Sandbox Code Playgroud)

但是模板对于缺失数据并不一致 - 不完整的报告具有完全不同的结构,并且元素在2,000多个页面中的位置不同.

任何帮助是极大的赞赏!

xml xpath r web-scraping

4
推荐指数
1
解决办法
3358
查看次数