我正在尝试将以下 data.table 重塑为列联表(不完全是因为我不想将频率作为值,我只想要 0 或 1):
自由度:
ID CC
990081899A CC2
990081899A CC115
990081899A CC39
990081899A CC39
990081899A CC115
990002362D CC2
990002362D CC115
990002362D CC115
990002362D CC115
990002362D CC6
990042716D CC2
我尝试了以下两件事,但得到了相同的结果:
第一的:
Contingency<-with(Df, table(ID,CC))
Diag6<- cbind(ID = rownames(Contingency), apply(Contingency, 2 , as.character))
第二:
我在数据中添加了 value 列,例如 Value = 1: Df:
ID CC Value
990081899A CC2 1
990081899A CC115 1
990081899A CC39 1
990081899A CC39 1
990081899A CC115 1
990002362D CC2 1
990002362D CC115 1
990002362D CC115 1
990002362D CC115 1
990002362D CC6 1
990042716D CC2 1
并尝试过:
Df<- data.table(dcast(Df,ID~CC,value.var="Value"),key="ID")
两个结果是一样的:
ID CC115 CC2 CC39 CC6
990081899A 2 1 2 0
990002362D 3 1 0 1
这里我不想要频率,我只想要它是否存在,否则值应该是 0:
ID CC115 CC2 CC39 CC6
990081899A 1 1 1 0
990002362D 1 1 0 1
任何建议都受到高度赞赏。