小编Jer*_*Who的帖子

ggplot2:如何在不同的图中使用相同的颜色来获得相同的因子

如何在不同的图中将相同的颜色固定到一个值?

假设我有两个data.frames df1和df2:

library(ggplot2)
library(gridExtra)

set.seed(1)
df1 <- data.frame(c=c('a', 'b', 'c', 'd', 'e'), x=1:5,  y=runif(5))
df2 <- data.frame(c=c('a', 'c', 'e', 'g', 'h'), x=1:5,  y=runif(5))
Run Code Online (Sandbox Code Playgroud)

当使用c作为颜色指示器绘制它们时,我得到相同的五种颜色.

g1 <- ggplot(df1, aes(x=x, y=y, fill=c)) + geom_bar(stat="identity")
g2 <- ggplot(df2, aes(x=x, y=y, fill=c)) + geom_bar(stat="identity")
grid.arrange(g1, g2, ncol=2)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

但我希望c的相同值得到相同的颜色.

r ggplot2

18
推荐指数
3
解决办法
7805
查看次数

无法为签名'"character"'找到函数'saveXML'的继承方法

在尝试解析xml文件时,我总是遇到此错误.

一个简单的脚本来重现它:

doc <- xmlRoot(xmlTreeParse("http://www.stat.purdue.edu/~mdw/490M/cdcatalog.xml"))

xpathSApply(doc, "//CATALOG/CD/PRICE", xmlValue)

Error in (function (classes, fdef, mtable)  : 
 unable to find an inherited method for function ‘saveXML’ for signature ‘"character"’
Run Code Online (Sandbox Code Playgroud)

加载以下包:

sessionInfo()
 R version 3.1.0 (2014-04-10)
 Platform: x86_64-apple-darwin13.1.0 (64-bit)

 locale:
 [1] de_DE.UTF-8/de_DE.UTF-8/de_DE.UTF-8/C/de_DE.UTF-8/de_DE.UTF-8

 attached base packages:
 [1] stats     graphics  grDevices utils     datasets  methods   base     

 other attached packages:
 [1] XML_3.98-1.1

 loaded via a namespace (and not attached):
 [1] tools_3.1.0
Run Code Online (Sandbox Code Playgroud)

xml r

12
推荐指数
2
解决办法
8152
查看次数

如何使用POSIXct类型的列初始化data.frame?

我可以通过初始化data.frame

df <- data.frame(a=numeric(), b=character())
Run Code Online (Sandbox Code Playgroud)

但是如何定义POSIXct类型的列?

df <- data.frame(a=numeric(), b=character(), c=POSIXct())
Run Code Online (Sandbox Code Playgroud)

不行.

r dataframe posixct

12
推荐指数
1
解决办法
7491
查看次数

如何应用函数返回data.frames与因子序列

如何应用将带有因子的data.frame返回到序列的函数?

例:

s <- factor(c(10, 20, 30))
t <- factor(c("a", "b", "a"))
v <- c(5, 6, 4)

df <- data.frame(s,t,v)
Run Code Online (Sandbox Code Playgroud)

所以data.frame df是这样的:

   s t v
1 10 a 5
2 20 b 6
3 30 a 4
Run Code Online (Sandbox Code Playgroud)

我还有一个返回data.frame的函数:

simpleFunc2 <- function(df, x){
  tmp <- subset(df, df$s == x)
  return(tmp)
}
Run Code Online (Sandbox Code Playgroud)

现在我有一个序列

x <- c(20, 30, 10, 30, 10)
Run Code Online (Sandbox Code Playgroud)

并希望结果auf将函数simpleFunc2应用于此序列.

我用sapply

sapply(x, function(x) simpleFunc2(df, x))
Run Code Online (Sandbox Code Playgroud)

但我明白了

  [,1]     [,2]     [,3]     [,4]     [,5]    
s factor,1 factor,1 factor,1 factor,1 factor,1
t factor,1 factor,1 factor,1 …
Run Code Online (Sandbox Code Playgroud)

r dataframe

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

如何在data.frame中填补(日期 - )空白?

我有一个带有日期列的data.frame.这些日期可以多次出现,但也可以是零时间:

        date value
1 2013-01-01     5
2 2013-01-01     3
3 2013-01-03     3
4 2013-01-04     3
5 2013-01-04     1
6 2013-01-06     1
Run Code Online (Sandbox Code Playgroud)

如何填写此data.frame中的日期空白,以便我得到以下内容?

        date value
1 2013-01-01     5
2 2013-01-01     3
3 2013-01-02     0
4 2013-01-03     3
5 2013-01-04     3 
6 2013-01-04     1
7 2013-01-05     0
8 2013-01-06     1
Run Code Online (Sandbox Code Playgroud)

欢迎任何帮助.

TIA,Jerry

r dataframe

10
推荐指数
1
解决办法
4547
查看次数

与dplyr和magrittr rollmean

鉴于以下数据:

    set.seed(1)
    data <- data.frame(o=c('a','a','a','a','b','b','b','b','c','c','c','c'), t=c(1,2,3,4,1,2,3,4,1,2,3,4), u=runif(12), v=runif(12))
    data
       o t          u         v
    1  a 1 0.26550866 0.6870228
    2  a 2 0.37212390 0.3841037
    3  a 3 0.57285336 0.7698414
    4  a 4 0.90820779 0.4976992
    5  b 1 0.20168193 0.7176185
    6  b 2 0.89838968 0.9919061
    7  b 3 0.94467527 0.3800352
    8  b 4 0.66079779 0.7774452
    9  c 1 0.62911404 0.9347052
    10 c 2 0.06178627 0.2121425
    11 c 3 0.20597457 0.6516738
    12 c 4 0.17655675 0.1255551
Run Code Online (Sandbox Code Playgroud)

我想计算由coloumn o定义的每组的滚动平均值(包动物园).滚动平均值的顺序由t设定.应将滚动平均值添加为data.frame的新列.

我想使用magrittr和dplyr.我试过了

    data %>%
      group_by(o) %>% …
Run Code Online (Sandbox Code Playgroud)

r zoo dplyr magrittr

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

如何将lapply的结果与data.frame结合起来?

说,我有一个向量和一个带有一个参数的函数,它返回一个data.frame.我想将该函数应用于向量的每个元素,并将结果合并到一个大数据框架中.

我在下面用lapply和rbind获得了工作命令.但它看起来有点"不自然".有更好,更清晰的方式吗?我对plyr有一些想法,但我想避免使用plyr,因为我想使用dplyr代替.

 my_vector <- c(1,2,3)
 my_function <- function(a){
   unif <- runif(a)
   norm <- rnorm(a)
   return(data.frame(unif=unif, norm=norm))
 }

 as.data.frame(do.call(rbind,(lapply(my_vector, my_function))))
Run Code Online (Sandbox Code Playgroud)

r dplyr

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

在分组的时间序列中填写缺少的日期 - 整齐的方式?

给定包含时间序列和一个或多个分组字段的data.frame.所以我们有几个时间序列 - 每个分组组合一个.但有些日期不见了.那么,使用正确的分组值添加这些日期最简单(就最"整齐的方式"而言)是什么?

通常我会说我生成一个包含所有日期的data.frame并使用我的时间序列执行full_join.但现在我们必须为每个分组值组合执行此操作 - 并填写分组值.

我们来看一个例子:

首先,我创建一个缺少值的data.frame:

library(dplyr)
library(lubridate)

set.seed(1234)
# Time series should run vom 2017-01-01 til 2017-01-10
date <- data.frame(date = seq.Date(from=ymd("2017-01-01"), to=ymd("2017-01-10"), by="days"), v = 1)
# Two grouping dimensions
d1   <- data.frame(d1 = c("A", "B", "C", "D"), v = 1)
d2   <- data.frame(d2 = c(1, 2, 3, 4, 5), v = 1)

# Generate the data.frame
df <- full_join(date, full_join(d1, d2)) %>%
  select(date, d1, d2) 
# and ad to value columns
df$v1 <- runif(200)
df$v2 …
Run Code Online (Sandbox Code Playgroud)

r time-series dplyr tidyverse

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

ggplot2:如何在主题中设置geom_bar()的默认填充颜色

我想为ggplot2定义一个主题,以便geom_bar()的默认颜色不是黑色.

我怎样才能做到这一点?

r ggplot2

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

grid.arrange出错:输入必须是grobs

我有以下R脚本:

    library(ggplot2)
    library(gridExtra)
    Sys.setenv(LANG ="en")
    c1 <- ggplot(mtcars, aes(factor(cyl))) + geom_bar()
    c2 <- ggplot(mtcars, aes(factor(cyl))) + geom_bar() + coord_flip()
    grid.arrange(c1, c2, ncols=1)
Run Code Online (Sandbox Code Playgroud)

我在grid.arrange中遇到以下错误:

在ArrangeGrob中出错(...,as.table = as.table,clip = clip,main = main,:输入必须是grobs!

我无法弄清楚导致问题的原因.

这是我使用过的版本:

sessionInfo()R版本3.0.2(2013-09-25)平台:x86_64-apple-darwin10.8.0(64位)

    locale:
    [1] de_DE.UTF-8/de_DE.UTF-8/de_DE.UTF-8/C/de_DE.UTF-8/de_DE.UTF-8

    attached base packages:
    [1] grid      stats     graphics  grDevices utils     datasets  methods   base     

    other attached packages:
    [1] gridExtra_0.9.1 ggplot2_0.9.3.1

    loaded via a namespace (and not attached):
     [1] colorspace_1.2-4 digest_0.6.4     gtable_0.1.2     labeling_0.2     MASS_7.3-31      munsell_0.4.2    plyr_1.8.1       proto_0.3-10     Rcpp_0.11.1      reshape2_1.2.2  
    [11] scales_0.2.4     stringr_0.6.2    tools_3.0.2             
Run Code Online (Sandbox Code Playgroud)

r ggplot2

7
推荐指数
1
解决办法
6141
查看次数

标签 统计

r ×10

dataframe ×3

dplyr ×3

ggplot2 ×3

magrittr ×1

posixct ×1

tidyverse ×1

time-series ×1

xml ×1

zoo ×1