我有一个 data.table在 R
> dt
SAMPLE junction count
1: R1 a 1
2: R2 a 1
3: R3 b 1
4: R3 a 1
5: R1 c 2
现在我想“ reshape ”数据表以形成
data frame
m (基本上由样本矩阵连接,索引值为对应的计数值)。另外,请注意
(SAMPLE,junction)
dt 中不存在的对,我假设对应的
count值为
zero .
有人可以帮助我如何实现这一目标吗?
> m
R1 R2 R3
a 1 1 1
b 0 0 1
c 2 0 0
请您参考如下方法:
dcast来自 data.table将数据集从“长”格式更改为“宽”格式。
library(data.table)#v1.9.5+
dcast(dt, junction~SAMPLE, value.var='count', fill=0)
# junction R1 R2 R3
#1: a 1 1 1
#2: b 0 0 1
#3: c 2 0 0
如果您需要矩阵输出
library(reshape2)
acast(dt, junction~SAMPLE, value.var='count', fill=0)
# R1 R2 R3
#a 1 1 1
#b 0 0 1
#c 2 0 0
或
xtabs来自
base R
xtabs(count~junction+SAMPLE, dt)




