根据R中每个ID的任意数量的观察值创建变量

时间:2012-02-09 21:42:03

标签: r dataframe dataset

我正在尝试从R中的数据集创建4个新变量,其中包含每个标识符(ID)的不同数量的观察值。我想将这些信息汇总成2个标志,用于指示ID是否具有类型A或B的观察值,以及2个计数器变量,其中包含每个ID的A和B的总数。

ID<-c(1,1,1,1,1,1,1,2,2,2,2,2,2)
Result<-c('A','A','B','A','A','A','A','B','B','B','B','B','B')
DSN<-data.frame(ID,Result)

输出结果为:

    ID  A_Flag  B_Flag  A_Count B_Count
    1   Y   Y   6   1
    2   N   Y   0   6

1 个答案:

答案 0 :(得分:1)

最简单的方法是使用xtabs

> xtabs(~ID+Result, DSN)
   Result
ID  A B
  1 6 1
  2 0 6

显然,旗帜可以从上面得到:

> xtabs(~ID+Result, DSN) > 0
   Result
ID      A    B
  1  TRUE TRUE
  2 FALSE TRUE