简体   繁体   English

使用现有年份变量在R中生成时间序列

[英]Generate Time Series in R with existing year variable

My Question 我的问题

I would like to set an existing variable ( year ) at a time-series variable for use in regressions in R. 我想在时间序列变量中设置一个现有变量( year ),以用于R中的回归。

My data 我的资料

I have a dataset (in data-frame format ) of country-level socioeconomic information from 1999 to 2013. Not every country has observations for every year. 我有一个1999年至2013年国家/地区级社会经济信息的数据集(以数据框格式 )。并非每个国家/地区都有每年的观测数据。 Some fill the entire range (1999-2013). 有些涵盖了整个范围(1999-2013年)。 Others do not. 其他人没有。

The data look like this: 数据如下所示:

data:
year   country   economy       poverty
2011   Algeria   1.0814223     1.3310658
2012   Algeria   0.4172840     0.6206897
2013   Algeria   0.5652174     0.9222222
1999   Morocco   1.0814223     1.3310658
2000   Morocco   1.3310658     1.1468254
2001   Morocco   0.6206897     1.2805829
2002   Morocco   0.9222222     1.3310658
2003   Morocco   1.6500000     0.7612833
2004   Morocco   0.9126984     0.9768519
2005   Morocco   1.1388889     1.3310658
2006   Morocco   1.0500000     0.8011516
2007   Morocco   1.0458075     0.5761905
2008   Morocco   1.5017544     0.6222222
2009   Morocco   1.1666667     1.3310658
2010   Morocco   1.0527660     1.1468254
2011   Morocco   1.3611111     0.5761905
2012   Morocco   1.1666667     0.5761905
2013   Morocco   1.4137931     0.5761905

How can I tell R to treat these data as time-series? 如何告诉R将这些数据视为时间序列? I have tried the following: 我尝试了以下方法:

Setting the entire dataframe as a time series: 将整个数据帧设置为时间序列:

ts.data <- as.ts(data, start = 1999, end = 2013)

Setting a time-series variable within the dataset: 在数据集中设置时间序列变量:

data$timeseries <- ts(data$year, start = 1999, end = 2013, frequency = 1)

Unfortunately, neither works. 不幸的是,两者都不起作用。

I'm sure that this is a dumb question, and I apologize. 我确定这是一个愚蠢的问题,对不起。 Thank you in advance for your help! 预先感谢您的帮助!

Assuming you really do want to create a time series from this as stated in the question: 假设您确实确实想根据问题中的说明创建一个时间序列:

library(zoo)
z <- read.zoo(data, split = "country")

giving this "zoo" class object (continued after output): 给这个"zoo"类对象(输出后继续):

> z
     economy.Algeria poverty.Algeria economy.Morocco poverty.Morocco
1999              NA              NA       1.0814223       1.3310658
2000              NA              NA       1.3310658       1.1468254
2001              NA              NA       0.6206897       1.2805829
2002              NA              NA       0.9222222       1.3310658
2003              NA              NA       1.6500000       0.7612833
2004              NA              NA       0.9126984       0.9768519
2005              NA              NA       1.1388889       1.3310658
2006              NA              NA       1.0500000       0.8011516
2007              NA              NA       1.0458075       0.5761905
2008              NA              NA       1.5017544       0.6222222
2009              NA              NA       1.1666667       1.3310658
2010              NA              NA       1.0527660       1.1468254
2011       1.0814223       1.3310658       1.3611111       0.5761905
2012       0.4172840       0.6206897       1.1666667       0.5761905
2013       0.5652174       0.9222222       1.4137931       0.5761905

or to convert to "ts" class: 或转换为"ts"类:

tt <- as.ts(z)

Note: The input data in reproducible form is: 注意:输入data的可复制形式为:

Lines <- "year   country   economy       poverty
2011   Algeria   1.0814223     1.3310658
2012   Algeria   0.4172840     0.6206897
2013   Algeria   0.5652174     0.9222222
1999   Morocco   1.0814223     1.3310658
2000   Morocco   1.3310658     1.1468254
2001   Morocco   0.6206897     1.2805829
2002   Morocco   0.9222222     1.3310658
2003   Morocco   1.6500000     0.7612833
2004   Morocco   0.9126984     0.9768519
2005   Morocco   1.1388889     1.3310658
2006   Morocco   1.0500000     0.8011516
2007   Morocco   1.0458075     0.5761905
2008   Morocco   1.5017544     0.6222222
2009   Morocco   1.1666667     1.3310658
2010   Morocco   1.0527660     1.1468254
2011   Morocco   1.3611111     0.5761905
2012   Morocco   1.1666667     0.5761905
2013   Morocco   1.4137931     0.5761905"

data <- read.table(text = Lines, header = TRUE)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM