我已经编写了一些R使用S4类的函数.
现在我想用R这些函数构建一个包.
我该怎么办?有什么我应该做的不同,因为我使用过S4课程吗?
在像marray和limma这样的包中,当加载复杂对象时,它们包含使用@符号访问的"成员变量".这意味着什么?它与$符号有什么不同?
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提供了两个从文件系统中删除文件(和文件夹)的功能:
unlinkfile.remove不完全明显的是差异是什么,或者确实在什么时候使用哪个,除了这unlink需要一些额外的论点.
读取这些函数的源代码并没有多大帮助,因为它们都只是调用编译的C函数.
有什么区别?你什么时候应该unlink优先使用,file.remove反之亦然?
自从%>%在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来说比较新,但这是我第一次不得不处理日期转换.我从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有多强大,我认为有一种非常简单的方法可以强制我的专栏成为有效的日期,而且我忽略了一个非常明显的解决方案.
我们将非常感谢您提供的任何帮助.
我想做一个黑色轮廓的条形图,条形图内有百分比.这可能来自qplot吗?我得到了百分比,但它们与特定的条形图不对齐.
包:ggplot2,重塑

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) 要使用Stack Overflow上的r -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.维基百科页面是我能找到的唯一来源,但如果有的话,请随意使用规范来源发布解决方案.
注意:这个问题是专门用于映射的,但是当我在标准的笛卡尔坐标系中绘图时,我希望能够使用它.
我喜欢基本图形,但也喜欢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)