我有一个大数据框
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
答案 0 :(得分:1)
这个问题很不清楚。 ID
和code
的组合是否唯一?每种组合都会发生吗?如果没有,应该如何处理缺失的组合?
我现在假设,ID
和code
不是唯一的,缺少的组合应该为相应的条目获得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