小编bla*_*p07的帖子

如何为构面添加不同的线条

我有数据可以看到两种不同物种的单一栽培和混合栽培之间的生长差异.此外,我制作了一个图表,以使我的数据清晰.

我想要一个带有误差条的条形图,整个数据集当然更大,但是对于这个图,这是data.frame带有条形图的方法.

plant           species     means
Mixed culture   Elytrigia   0.886625
Monoculture     Elytrigia   1.022667
Monoculture     Festuca     0.314375
Mixed culture   Festuca     0.078125
Run Code Online (Sandbox Code Playgroud)

有了这个数据I作出的曲线图ggplot2,其中plant是在x轴和means所述y轴和I中使用的小面来划分种类.

这是我的代码:

    limits <- aes(ymax = meansS$means + eS$se, ymin=meansS$means - eS$se)
    dodge <- position_dodge(width=0.9)

    myplot <- ggplot(data=meansS, aes(x=plant, y=means, fill=plant)) + facet_grid(. ~ species) 
    myplot <- myplot + geom_bar(position=dodge) + geom_errorbar(limits, position=dodge, width=0.25)
    myplot <- myplot + scale_fill_manual(values=c("#6495ED","#FF7F50"))
    myplot <- myplot + labs(x = "Plant treatment", y = "Shoot biomass (gr)")  
    myplot …
Run Code Online (Sandbox Code Playgroud)

r facet ggplot2

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

不要丢零计数:躲避条形图

我正在ggplot2中制作一个躲闪的条形图,一个分组的数量为零,我想显示.我记得有一段时间在这里看到这个,并认为它scale_x_discrete(drop=F)会起作用.它似乎不适用于躲避酒吧.如何显示零点数?

例如,下图(下面的代码),type8~group4没有例子.我仍然希望绘图显示零计数的空白空间而不是消除栏.我怎样才能做到这一点?

在此输入图像描述

mtcars2 <- data.frame(type=factor(mtcars$cyl), 
    group=factor(mtcars$gear))

m2 <- ggplot(mtcars2, aes(x=type , fill=group))
p2 <- m2 + geom_bar(colour="black", position="dodge") +
        scale_x_discrete(drop=F)
p2
Run Code Online (Sandbox Code Playgroud)

r ggplot2

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

子集由R中的日期范围设置的data.table

我在data.table中有一个大型数据集,我想按日期范围进行分组.我的数据集如下所示:

testset <- data.table(date=as.Date(c("2013-07-02","2013-08-03","2013-09-04",
                                     "2013-10-05","2013-11-06")), 
                      yr = c(2013,2013,2013,2013,2013), 
                      mo = c(07,08,09,10,11),
                      da = c(02,03,04,05,06), 
                      plant = LETTERS[1:5], 
                      product = as.factor(letters[26:22]), 
                      rating = runif(25))
Run Code Online (Sandbox Code Playgroud)

我希望能够直接从选择的日期范围as.Date列不使用yr,moda列.目前,我正在进行mo分组,有时非常笨重,尤其是在多年转换的时候.一种更优雅的方法可以让我的生活变得更加轻松.

提前致谢!

r subset date-range slice data.table

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

理解.I在R中的data.table中

我一直在玩data.table,我遇到了一个区别,我不确定我是否理解.给定以下数据集:

library(data.table)

set.seed(400)
DT <- data.table(x = sample(LETTERS[1:5], 20, TRUE), key = "x"); DT
Run Code Online (Sandbox Code Playgroud)

你可以向我解释以下表达方式之间的区别吗?

1) DT[J("E"), .I]

2) DT[ , .I[x == "E"] ]

3) DT[x == "E", .I]

r subset data.table

23
推荐指数
1
解决办法
8251
查看次数

频率表,包括data.table上未使用值的零

我有一个数据集如下:

library(data.table)

test <- data.table(structure(list(Issue.Date = structure(c(16041, 16056, 16042,15990, 15996, 16001, 15995, 15981, 15986, 15996, 15996, 16002,16015, 16020, 16025, 16032, 16023, 16084, 16077, 16102, 16104,16107, 16112, 16113, 16115, 16121, 16125, 16128, 16104, 16132,16133, 16135, 16139, 16146, 16151), class = "Date"), 
    Complaint = structure(c(1L,4L, 4L, 4L, 4L, 4L, 4L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 1L,5L, 3L, 1L, 3L, 1L, 4L, 4L, 3L, 3L, 3L, 3L, 3L, 2L, 2L, 1L, 3L,3L, 3L), .Label = c("A", "B", "C", "D", …
Run Code Online (Sandbox Code Playgroud)

r frequency-distribution data.table

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

在r中用ggplot2创建月份大小的箱子

我有一组数据需要在ggplot2中绘制.这是订购时间.这是数据集:

testset <- data.table(Date=as.Date(c("2013-07-02","2013-08-03","2013-09-04","2013-10-05","2013-11-06","2013-07-03","2013-08-04","2013-09-05","2013-10-06","2013-11-07")), Action = c("A","B","C","D","E","B","A","B","C","A","B","E","E","C","A"), rating = runif(30))
Run Code Online (Sandbox Code Playgroud)

我正在做的是绘制它并使用scale_x_date将有条件的数据放在图表上.但是,当我这样做时,它不会将它装入月份大小的箱子中.相反,它会在采取行动的那一天将其加入.

ggplot(testset, aes(Date, fill=Action)) + geom_bar(position="dodge") + scale_x_date(labels = date_format("%b %Y"), breaks = date_breaks(width = "months"))
Run Code Online (Sandbox Code Playgroud)

我想做的是将每个月的所有日期放在一个垃圾箱中,然后绘制成图.在浏览StackOverflow时我没有找到任何解决方案,在浏览ggplot2或scale_x_date的文献时没有任何问题.如果他们可以提供我正在寻找的输出,我不反对使用lubridate或zoo.

提前致谢!

编辑:从@mnel看到下面的答案后,我最后发布了一个关于如何修改情节的问题.在@tonytonov给我的帮助和@mnel给我的帮助之间,我想出了一个解决方案.

ggplot(testset, aes(as.factor(as.yearmon(Date)), fill=Action)) + 
geom_bar(position='dodge') + xlab("Date") + ylab("Count")
Run Code Online (Sandbox Code Playgroud)

这最终给了我这个图:

最终图表

感谢你们俩!

plot r date ggplot2 data.table

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

使用ggplot2以任意顺序手动设置填充条的顺序

我正在试图弄清楚如何转换我的条形图.现在,Gears填充按数字顺序排列.我试图能够以Gears任意顺序手动设置填充的顺序.

我找到的所有其他示例告诉我如何根据数据的计数或值以降序或升序对它们进行排序.我正在尝试以任意顺序手动设置订单.因此,我想手动告诉它我希望数据显示为3-5-4或5-3-4,而不是3-4-5.

这就是我现在拥有的:

library(data.table)
library(scales)
library(ggplot2)

mtcars <- data.table(mtcars)
mtcars$Cylinders <- as.factor(mtcars$cyl)
mtcars$Gears <- as.factor(mtcars$gear)
setkey(mtcars, Cylinders, Gears)
mtcars <- mtcars[CJ(unique(Cylinders), unique(Gears)), .N, allow.cartesian = TRUE]

ggplot(mtcars, aes(x=Cylinders, y = N, fill = Gears)) + 
               geom_bar(position="dodge", stat="identity") + 
               ylab("Count") + theme(legend.position="top") + 
               scale_x_discrete(drop = FALSE)
Run Code Online (Sandbox Code Playgroud)

圆柱图

如果要进行任何不涉及的数据操作ggplot2,我想使用它data.table.谢谢您的帮助!

r ggplot2

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

使用动物园中的as.yearmon在ggplot2中修改Plot

我在ggplot2中使用zoo创建了一个图表来创建月份箱.但是,我希望能够修改图形,使其看起来像标准的ggplot图形.这意味着将丢弃未使用的容器以及填充整个容器空间的容器.这是我的代码:

library(data.table)
library(ggplot2)
library(scales)
library(zoo)

testset <- data.table(Date=as.Date(c("2013-07-02","2013-08-03","2013-09-04","2013-10-05","2013-11-06","2013-07-03","2013-08-04","2013-09-05","2013-10-06","2013-11-07")), 
           Action = c("A","B","C","D","E","B","A","B","C","A","B","E","E","C","A"), 
           rating = runif(30))
Run Code Online (Sandbox Code Playgroud)

ggplot调用是:

ggplot(testset, aes(as.yearmon(Date), fill=Action)) + 
           geom_bar(position = "dodge") + 
           scale_x_yearmon()
Run Code Online (Sandbox Code Playgroud)

我不确定我错过了什么,但我想知道!提前致谢!

plot r date ggplot2 zoo

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

在 selectizeInput 中未选择任何值时,闪亮的 input$____ 值

我有一个shiny看起来像这样的应用程序

ui.R

shinyUI(fluidPage(

            titlePanel("Test Application"),

            sidebarLayout(
                    sidebarPanel(

                            selectizeInput("N",
                                    label = ("N"),
                                    multiple = TRUE,
                                    choices = NULL,
                                    options = list(
                                            placeholder = 'Select All Desired, Type to Search',
                                            onInitialize = I('function() { this.setValue(""); }')
                                    )),

                            selectizeInput("M", 
                                    label = "M",
                                    multiple = TRUE,
                                    choices = NULL,
                                    options = list(
                                            placeholder = 'Select All Desired, Type to Search',
                                            onInitialize = I('function() { this.setValue(""); }')
                                    ))
                    ),

                    mainPanel(
                            tabsetPanel(
                                    tabPanel("Test Plot 1",
                                            plotOutput("testPlot1"))                                        
                    )
            ))))
Run Code Online (Sandbox Code Playgroud)

server.R

library(data.table)
library(ggplot2)
options("stringsAsFactors" = FALSE, …
Run Code Online (Sandbox Code Playgroud)

r shiny

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

组合数组中的唯一项

我有一个正在查询的数据集。数据如下:

db.activity.insert(
    {
        "_id" : ObjectId("5908e64e3b03ca372dc945d5"),
        "startDate" : ISODate("2017-05-06T00:00:00Z"),
        "details" : [
            {
                "code" : "2",
                "_id" : ObjectId("5908ebf96ae5003a4471c9b2"),
                "walkDistance" : "03",
                "jogDistance" : "01",
                "runDistance" : "08",
                "sprintDistance" : "01"
            }
        ]
    }
)

db.activity.insert(
    {
        "_id" : ObjectId("58f79163bebac50d5b2ae760"),
        "startDate" : ISODate("2017-05-07T00:00:00Z"),
        "details" : [
            {
                "code" : "2",
                "_id" : ObjectId("58f7948fbebac50d5b2ae7f2"),
                "walkDistance" : "01",
                "jogDistance" : "02",
                "runDistance" : "09",
                "sprintDistance" : ""
            }
        ]
    }
)
Run Code Online (Sandbox Code Playgroud)

我想要的输出如下所示:

[
  {
    "_id": null,
    "uniqueValues": [
      "03",
      "01",
      "08",
      "02", …
Run Code Online (Sandbox Code Playgroud)

mongodb mongodb-query aggregation-framework

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

R拆分列表需要很长时间

我有一个data.table我需要分成列表.这是一个示例数据集:

testSet <- data.table(A = 1:2, B = 4:5, C = rep(7:8, times = 50), 
                        D = 9:10, E = 15:16, F = 24:25, G = 27:28,
                        H = 29:30, I = 32:33, J = 35:36, K = 1:50)
Run Code Online (Sandbox Code Playgroud)

如您所见,它有11列,每列都是数字.我需要按10列中的值进行拆分,以便创建列表列表.我创建了以下功能代码(Macbook Air供参考):

system.time(testSetLists <- split(testSet, 
                list(testSet[["A"]], testSet[["B"]], testSet[["C"]],
                        testSet[["D"]], testSet[["E"]], testSet[["F"]], 
                        testSet[["G"]], testSet[["H"]], testSet[["I"]], 
                        testSet[["J"]])))

>    user  system elapsed 
    0.759   0.109   0.731 
Run Code Online (Sandbox Code Playgroud)

这完美地工作,并给我我所需的输出.但是,当我在一列中增加数字范围时,如A下面的数据集中所示:

testSet <- data.table(A = 1:5, B = 4:5, C = rep(7:8, times = 50), …
Run Code Online (Sandbox Code Playgroud)

algorithm split r data.table

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

展平mongoDB架构

我有一个现有的深层嵌套的mongoDB架构,我必须弄平,因为我有一个复杂的查询,无法用当前结构有效地进行.这是架构的MWE:

db.test.insert({
    "_id" : ObjectId("58e574a768afb6085ec3a388"),
    "details" : [
            {
                "_id" : ObjectId("58e55f0f68afb6085ec3a2cc"),
                "a" : [
                    {
                        "unit" : "08",
                        "size" : "5",
                        "pos" : "Far",
                        "_id" : ObjectId("58e55f0f68afb6085ec3a2d0")
                    }
                ],
                "b" : [
                    {
                        "unit" : "08",
                        "size" : "5",
                        "pos" : "Far",
                        "_id" : ObjectId("58e55f0f68afb6085ec3a2cd")
                    }
                ],
                "c" : [
                    {
                        "unit" : "08",
                        "size" : "3",
                        "pos" : "Far",
                        "_id" : ObjectId("58e55f0f68afb6085ec3a2ce")
                    }
                ],
                "d" : [
                    {
                        "unit" : "08",
                        "size" : "5",
                        "pos" : "Far",
                        "_id" …
Run Code Online (Sandbox Code Playgroud)

schema mongodb

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