【问题标题】:R dygraphs - plot certain content of columnsR dygraphs - 绘制列的某些内容
【发布时间】:2020-11-30 00:31:47
【问题描述】:

我有一个 csv 文件 "fruit.csv" 看起来像这样:

"Date","Fruit","Count"
2019-01-01,Apple,3
2019-01-01,Pear,5
2019-01-01,Banana,4
2019-02-01,Apple,4
2019-02-01,Pear,4
2019-02-01,Banana,6
...

我想绘制 x 轴为日期、y 轴为数字的数据。特别是,我希望图表只显示某种水果的数据,例如只有苹果。 这是我到目前为止所拥有的,一次绘制所有水果:

data <- read.csv("Path/to/fruit.csv")

data$Date <- as.Date(data$Date)

time_series <- xts(data$Count, order.by = data$Date)
dygraph(time_series)

我需要添加什么来指定我想要绘制的水果?

【问题讨论】:

    标签: r csv xts dygraphs


    【解决方案1】:

    这里有一些方法:

    首先,提前使用dplyrfilter()的数据:

    library(dplyr)
    apples <- data %>%
      filter(Fruit == "Apple")
    apples_ts <- xts(apples$Count, order.by = apples$Date)
    dygraph(apples_ts)
    

    其次,提前以更传统的方式对数据进行子集化。

    apples <- data[which(data$Fruit == "Apples"),]
    apples_ts <- xts(apples$Count, order.by = apples$Date)
    dygraph(apples_ts)
    

    第三,将调用中的数据子集化为xts

    apples_ts <- xts(data[data$Fruit == "Apple",]$Count, 
                     order.by = data[data$Fruit == "Apple",]$Date)
    dygraph(apples_ts)
    

    第四,编写一个自定义函数,这样你就不需要为每个水果重复这段代码了:

    fruit_dygraph <- function(data, fruit) {
      fruit_ts <- xts(data[data$Fruit == fruit,]$Count, 
                     order.by = data[data$Fruit == fruit,]$Date)
      dygraph(fruit_ts)
      }
    fruit_dygraph(data, fruit = "Apple")
    

    【讨论】:

    • 非常感谢!提供大量方法确实有助于我作为初学者了解正在发生的事情。
    • 但是,选项 #3 会给我一个错误:undefined columns selected。是不是少了什么东西?
    • 选项 #3 在第二个子集中缺少关键逗号。 #3 现在应该可以工作了。
    • 差不多了,我才发现,你还是要加order.by = as.Date(data[...])
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多