小编And*_*rie的帖子

如何在R中开发包?

我已经编写了一些R使用S4类的函数.

现在我想用R这些函数构建一个包.

我该怎么办?有什么我应该做的不同,因为我使用过S4课程吗?

r package s4

32
推荐指数
1
解决办法
3478
查看次数

@符号在R中的含义是什么?

在像marray和limma这样的包中,当加载复杂对象时,它们包含使用@符号访问的"成员变量".这意味着什么?它与$符号有什么不同?

r s4

30
推荐指数
3
解决办法
7391
查看次数

有没有办法操纵ggplot刻度和标签?

ggplot 通常可以很好地在尺度上创造合理的断裂和标签.

但是,我发现在具有许多方面和可能是formatter=声明的情节中,标签往往过于"密集"和套印,例如在这张图片中:

df <- data.frame(
        fac=rep(LETTERS[1:10], 100),
        x=rnorm(1000)
)

ggplot(df, aes(x=x)) + 
  geom_bar(binwidth=0.5) + 
  facet_grid(~fac) + 
  scale_x_continuous(formatter="percent")
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我知道我可以通过提供breaks=scale=参数来明确指定刻度的中断和标签scale_x_continuous.

但是,我正在处理包含许多问题和十几个交叉测试的调查数据,因此需要找到一种自动执行此操作的方法.

有没有办法告诉ggplot自动计算断点和标签,但只有更少,比如最小,最大和零点?

编辑:理想情况下,我不想指定最小和最大点,但不知何故利用内置的ggplot刻度训练,并使用默认计算的比例限制.

r ggplot2

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

在R中,unlink和file.remove有什么区别?

R提供了两个从文件系统中删除文件(和文件夹)的功能:

  • unlink
  • file.remove

不完全明显的是差异是什么,或者确实在什么时候使用哪个,除了这unlink需要一些额外的论点.

读取这些函数的源代码并没有多大帮助,因为它们都只是调用编译的C函数.

有什么区别?你什么时候应该unlink优先使用,file.remove反之亦然?

r

29
推荐指数
2
解决办法
5818
查看次数

如何使用magrittr%>%pipe从列表中提取/子集元素?

自从%>%magrittr包中引入运算符(并且它在其中使用)以来dplyr,我已经开始在我自己的工作中使用它.

然而,一个简单的操作让我难过.具体而言,这是从列表中提取(或子集化)元素.

一个示例:在基RI将使用$,[[[以提取从一个列表中的一个元素:

iris$Species
iris[["Species"]]
Run Code Online (Sandbox Code Playgroud)

我可以使用%>%管道实现相同的目标:

iris %>%
  subset(select = "Species") %>%
  head

  Species
1  setosa
2  setosa
3  setosa
4  setosa
5  setosa
6  setosa
Run Code Online (Sandbox Code Playgroud)

要么

iris %>%
  `[[`("Species") %>%
  levels

[1] "setosa"     "versicolor" "virginica" 
Run Code Online (Sandbox Code Playgroud)

然而,这感觉就像一个混乱,笨重的解决方案.

是否有更优雅,规范的方法使用%>%管道从列表中提取元素?

注意:我不想要任何涉及的解决方案dplyr,原因很简单,我希望解决方案能够与任何R对象一起使用,包括列表和矩阵,而不仅仅是数据帧.

r magrittr

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

在R中将字符转换为日期

我对R来说比较新,但这是我第一次不得不处理日期转换.我从CSV读取数据(使用read.table()),但我缩短了数据以突出显示我的问题.当读入R时,Date字段是字符.

简单地说,我的大多数日期都被正确强制,除了少数情况.下面的例子有望向您展示正在发生的事情.

# my attempt to coerce the date -- uses the stringr package
prods.all$Date2 <- as.Date(str_sub(prods.all$Date, 1, 
                str_locate(prods.all$Date, " ")[1]-1), 
                "%m/%d/%Y")

# grab two rows to highlight my issue
temp <- prods.all[c(1925:1926), c(1,8)]

> temp
                   Date      Date2
1925  10/9/2009 0:00:00 2009-10-09
1926 10/15/2009 0:00:00 0200-10-15
Run Code Online (Sandbox Code Playgroud)

如您所见,某些日期的年份不准确.当这一天是两位数时,似乎会出现这种模式.

我查看了几本书并尝试了Google更好的方法,但似乎所有内容都表明我的数据在输入时格式不正确.

鉴于R有多强大,我认为有一种非常简单的方法可以强制我的专栏成为有效的日期,而且我忽略了一个非常明显的解决方案.

我们将非常感谢您提供的任何帮助.

r lubridate

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

向ggplot条形图添加标签

我想做一个黑色轮廓的条形图,条形图内有百分比.这可能来自qplot吗?我得到了百分比,但它们与特定的条形图不对齐.

包:ggplot2,重塑

在Illustrator中创建

x <- data.frame(filename = c("file1", "file2", "file3", "file4"),
                    low = c(-.05,.06,.07,-.14),
                    hi = c(.87,.98,.56,.79))
x$tot <- x$hi + x$low

x <- melt(x, id = 'filename')

bar <- qplot(x = factor(filename), 
             y = value*100,
             fill = factor(variable),
             data = x,
             geom = 'bar',
             position = 'dodge') + coord_flip()
bar <- bar + scale_fill_manual(name = '',
                               labels = c('low',
                                          'Hi',
                                          "Tot"),
                               values = c('#40E0D0',
                                          '#FF6347',
                                          "#C7C7C7")) 
bar <- bar + geom_text(aes(label = value*100))+geom_bar(colour = 'black')
bar <- bar + opts(panel.background …
Run Code Online (Sandbox Code Playgroud)

r ggplot2

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

如何抓取网页上的R发布日期列表?

要使用Stack Overflow上的 -tag 庆祝第20,000个问题,请帮助我从Wikipedia页面中提取R发布日期.

我的尝试:

library(XML)
x <- readHTMLTable("http://en.wikipedia.org/wiki/R_(programming_language)")
Run Code Online (Sandbox Code Playgroud)

这不起作用,因为该表实际上是一个列表,而不是HTML表.

library(httr)
x <- GET("http://en.wikipedia.org/wiki/R_(programming_language)")
text <- content(x, "parsed")
Run Code Online (Sandbox Code Playgroud)

这会提取文本,但我xpath生锈了,所以我无法提取相关的发布日期.

我怎样才能做到这一点?


PS.维基百科页面是我能找到的唯一来源,但如果有的话,请随意使用规范来源发布解决方案.

r

28
推荐指数
4
解决办法
1417
查看次数

错误:找不到函数"ggplot"

我已经安装了ggplot和ggplot2及其依赖项.

感谢帮助.

r ggplot2

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

ggplot2中的定位器等价物(用于地图)

注意:这个问题是专门用于映射的,但是当我在标准的笛卡尔坐标系中绘图时,我希望能够使用它.

我喜欢基本图形,但也喜欢ggplot2.用于微调图形的我最常用的基本函数之一是locator(n),但这会在ggplot2中产生错误.

library(ggplot2) 
county_df <- map_data('county')  #mappings of counties by state
ny <- subset(county_df, region=="new york")   #subset just for NYS
ny$county <- ny$subregion

ggplot(ny, aes(long, lat, group=group)) +  geom_polygon(colour='black', fill=NA)
locator(1)
Run Code Online (Sandbox Code Playgroud)

现在,grid.locator()作为talkstats.com向我指出的达诚(这里),可以返回一些东西.我只是不知道如何使用那些东西来获得地图坐标.

> grid.locator()
$x
[1] 286native

$y
[1] 133native
Run Code Online (Sandbox Code Playgroud)

单位似乎没有帮助,因为它们不是地图坐标.也许我需要某种转换.

先感谢您.

编辑:(基于DWin的回复)

Dwin有正确的想法,但转换因素有点偏.对此的帮助将不胜感激.在下面的示例中,我在坐标处有一个红点(x = -73&y = 40.855).我把Dwin的响应扔进了一个函数来返回坐标.我希望结果是我输入的坐标,但它们不是.

想法?

require(maps); library(ggplot2); require(grid)

county_df <- map_data('county')  #mappings of counties by state
ny <- subset(county_df, region=="new york")   #subset just for NYS
ny$county <- ny$subregion


NY <- ggplot(ny, aes(long, …
Run Code Online (Sandbox Code Playgroud)

r ggplot2 ggmap

26
推荐指数
4
解决办法
5715
查看次数

标签 统计

r ×10

ggplot2 ×4

s4 ×2

ggmap ×1

lubridate ×1

magrittr ×1

package ×1