0

我有一个这样的data.frame

VAR1 VAR2
1999 USA
1999 USA
1999 UK
2000 GER
2000 USA
2000 GER
2000 USA
2001 USA

我如何计算每年的任何级别的 VAR2?

我想要的是一个图,其中 x 轴是年份,y 轴是 VAR2 中任何级别的计数

4

3 回答 3

3

data.table 解决方案

library(data.table)

new.dat = data.table(dat)[,length(unique(var2)),by=var1]
new.dat=as.matrix(new.dat)
plot(x=new.dat[,1],y=new.dat[,2])
于 2013-05-17T08:38:18.970 回答
3

我能想到的最简单的方法:

让 dat = 你的数据框

with(dat,table(VAR1,VAR2))

输出将如下所示:

      VAR2
VAR1   GER UK USA
  1999   0  1   2
  2000   2  0   2
  2001   0  0   1

希望这可以帮助。

于 2013-05-17T13:58:40.187 回答
1

有很多方法,这个问题无疑是重复的。你试过什么?您可以dcastreshape2包装中使用。

require(reshape2)
dcast( df , Country ~ Year , length )

#  Country 1999 2000 2001
#1     GER    0    2    0
#2      UK    1    0    0
#3     USA    2    2    1
于 2013-05-17T08:32:30.960 回答