2017-10-04 35 views
0

我有一个有三个变量的矩形表:国家,年份和通货膨胀。我已经拥有了所有可以描述的描述,现在我需要做一些分析,并且认为我应该对目标国家进行一些线性回归。我最好的想法是创建一个名为inflation.in.country.x的新变量,并在这个新列中循环遍历x的通货膨胀,但似乎有些不清楚的解决方案。针对一组数值的矩形表的线性回归

如何获得矩形数据表的线性回归?结构是这样的:

> dat %>% str 
'data.frame': 1196 obs. of 3 variables: 
$ Country.Name: Factor w/ 31 levels "Albania","Armenia",..: 9 8 10 11 12 14 15 16 17 19 ... 
$ year  : chr "1967" "1967" "1967" "1967" ... 
$ inflation : num 1.238 8.328 3.818 0.702 1.467 ... 

我想把亚美尼亚通货膨胀当作因变量和阿尔巴尼亚作为独立来得到线性回归。不改变数据并保持数年的一致性是可能的?

回答

-2

的一种方法是使用传播的Country.Name数据表作为关键:

dat.spread <- dat %>% spread(key="Country.Name", value="inflation") 
dat.spread %>% str 
'data.frame': 50 obs. of 31 variables: 
$ year    : chr "1967" "1968" "1969" "1970" ... 
$ Albania   : num NA NA NA NA NA NA NA NA NA NA ... 
$ Armenia   : num NA NA NA NA NA NA NA NA NA NA ... 
$ Brazil   : num NA NA NA NA NA NA NA NA NA NA ... 
[...] 

但是,这迫使你改变可能看起来不理想的数据。之后,您可以简单地使用cbind对所有国家进行线性回归:

lm(cbind(Armenia, Brazil, Colombia, etc...) ~ Albania, data = dat.spread)