使用两列在R中导入/绘制时间序列

时间:2018-04-16 01:29:45

标签: r

我有RStudio并想要导入时间序列数据集。 x轴上的列应该是年份,但是当我使用ts.plot命令时,它只是在x轴上绘制Time。如何使数据集中的年份出现在我的情节中?

该数据集适用于1898年至1968年纽约市的用水情况。有两个栏目,即年份和用水量。

这是我使用的数据的链接(我已经加载了.TSV文件)

https://datamarket.com/data/set/22tl/annual-water-use-in-new-york-city-litres-per-capita-per-day-1898-1968#!ds=22tl&display=line

这些是导入我的数据的命令:

nyc <- read.csv("~/Desktop/annual-water-use-in-new-york-cit.tsv", sep="")
View(nyc)
ts.plot(nyc)

这就是我得到的:

1 个答案:

答案 0 :(得分:0)

有几种方法可以做到这一点。我在本演示中使用了链接中的CSV文件。

library(tidyverse)
nyc <- read_csv("annual-water-use-in-new-york-cit.csv")
head(nyc)
# A tibble: 6 x 2
  Year  `Annual water use in New York city, litres per capita per day, 1898-1968`
  <chr> <chr>                                                                    
1 1898  402.8                                                                    
2 1899  421.3                                                                    
3 1900  431.2                                                                    
4 1901  426.2                                                                    
5 1902  425.5                                                                    
6 1903  423.6 

方法1

创建时间序列对象并绘制此时间序列。

首先,让我们修改年度用水的列名,以便在我们的代码中更容易调用。

nyc <- nyc %>%
  rename(
    water_use = `Annual water use in New York city, litres per capita per day, 1898-1968`
  )

使用nyc.ts函数制作时间序列对象ts()

nyc.ts <- ts(as.numeric(nyc$water_use), start = 1898)

然后,您可以使用通用plot函数绘制时间序列。

plot(nyc.ts, xlab = "Years")

方法2

使用forecast::autoplot功能。请注意,此功能建立在ggplot2之上。

autoplot(nyc.ts) + xlab("Years") + ylab("Amount in Litres")

enter image description here

方法3

仅使用ggplot2

nyc$Year <- as.POSIXct(nyc$Year, format = "%Y")
nyc$water_use <- as.numeric(nyc$water_use)
ggplot(nyc, aes(x = Year, y = water_use)) + geom_line() + xlab("Years") + ylab("Amount in Litres")