【发布时间】:2015-02-06 14:00:36
【问题描述】:
假设我有以下列表:
$`1990`
cntry year growth
1 1 1990 1
2 2 1990 2
3 3 1990 14
$`1991`
cntry year growth
4 1 1991 6
5 2 1991 5
6 3 1991 7
创建列表的代码:
cntry<-c(1,2,3,1,2,3)
year<-c(1990,1990,1990,1991,1991,1991)
growth<-c(1,2,14,6,5,7)
a<-data.frame(cntry,year,growth)
a.split<-split(a, as.factor(a$year))
我想要创建一个矩阵列表,用于衡量两国之间的增长率差异。
- 在各自的矩阵中,仅当列中国家的增长率时才应计算增长率的差异 高于该行中的国家/地区。
- 如果列中的增长率等于或小于 行中的国家/地区,则矩阵应显示值 0。
- 如果组合中至少有一个国家/地区具有 NA 值, 那么矩阵应该在相应的字段中显示一个 0。
结果应如下所示:
$`1990`
1 2 3
1 0 1 13
2 0 0 12
3 0 0 0
$`1991`
1 2 3
1 0 0 1
2 1 0 2
3 0 0 0
非常欢迎任何帮助!
【问题讨论】: