我想根据文本文件中的数据在R中创建矩阵。文本文件中的数据如下所示:
ID1, X, 2
ID1, Y, 1
ID1, Z, 2
ID2, X, 1
ID2, Z, 1
ID3, A, 2
我想做的是将其转换为如下所示的矩阵:
ID, A, X, Y, Z
ID1, NA, 2, 1, 1
ID2, NA, 1, NA, 1
ID3, 2, NA, NA, NA
我知道如果我有这种格式:
ID1, X
ID1, X
ID1, Y
ID1, Z
ID2, X
ID2, Z
ID3, A
ID3, A
我可以使用table命令获取我正在寻找的内容,但是我已经看到他们没有使用我所拥有的数据格式的解决方案。我无法使用这些解决方案,因为我使用的数据在扩展格式中有超过5亿行,如果它没有压缩成我上面的格式。
如何创建此矩阵以及最有效的方法是什么?压缩我的数据大约是300万行。
答案 0 :(得分:2)
与tidyr相同
<
答案 1 :(得分:0)
在我发布这个问题后,我发现了这个:
library(reshape)
x<-rbind(c('ID1','X',2),c('ID1','Y',1),c('ID1','Z',1),c('ID2','Y',2),c('ID2','Z',3),c('ID3','A',8))
colnames(x)<-c('ID','Code','Value')
cast(x,ID~Code)
ID A X Y Z
1 ID1 <NA> 2 1 1
2 ID2 <NA> <NA> 2 3
3 ID3 8 <NA> <NA> <NA>
我还没有在我的大型数据集上尝试过,所以如果有人知道比这更高效的东西,那么看到其他建议会很棒!