整理大数据框架

时间:2013-05-25 13:59:23

标签: r dataframe

我有一个大数据框

ID  code    N
1    412    2
1    A341   1
1    A520   16
1    47     9
2    283    4
2    412    3 
.......

id是rep。并且我想分配代码是412 598 A333和N heve> 3然后我可以像这样排序表

ID  code_412    code_598  code_A333
1     0             0         0
2     1             0         0
3     0             1         1

如果ID有code412 3次或code598 3次或codeA333 3次则将key 1 else 0

1 个答案:

答案 0 :(得分:1)

这个问题很不清楚。 IDcode的组合是否唯一?每种组合都会发生吗?如果没有,应该如何处理缺失的组合?

我现在假设,IDcode不是唯一的,缺少的组合应该为相应的条目获得0。这是使用reshape2::dcast的解决方案:

library( "reshape2" )
mdf <- dcast( mdf,  ID ~ code, value.var = "N",
              fun.aggregate=function(x) ifelse( sum(x) < 3, 0, 1 )
            )
colnames( mdf )[-1] <- paste( "code", colnames(mdf)[-1], sep = "_" )

mdf
ID code_283 code_412 code_47 code_A341 code_A520
1  1        0        0       1         0         1
2  2        1        1       0         0         0