我希望你能帮我解决一段时间困扰我的问题。
我有一个包含几百万行的数据框,如下所示:df
id V1=i count.i V2=j count.j
1 10000 1 A 1
2 20000 1 B .33
2 20000 1 C .33
2 20000 1 D .33
3 19482 1 E 1
4 10000 .5 A 1
4 20000 .5 A 1
5 34556 1 E 1
6 10101 1 A .5
6 10101 1 B .5
7 20000 .5 E .5
7 20000 .5 F .5
7 44044 .5 E .5
7 44044 .5 F .5
矩阵
A, B, C, D, E, F, G, ,..., J
10000 1.5 x x x x x x
10101 .5 .5 x x x x x
19482 x x x x 1 x x
20000 0.5 .33 .33 .33 .25 .25 x
34556 x x x x 1 x x
44044 x x x x x x x
,.., I
帮助会非常渺茫!
编辑:我已将示例更改为更清晰且更具代表性
答案 0 :(得分:0)
data<-read.table(textConnection(
"id V1 count.i V2 count.j
1 10000 1 A 1
2 20000 1 B .33
2 20000 1 C .33
2 20000 1 D .33
3 19482 1 E 1
4 22222 1 F .5
4 22222 1 G .5
5 34556 1 E 1
6 10101 1 A .5
6 10101 1 B .5
7 20000 .5 B .5
7 20000 .5 F .5
7 44044 .5 E .5
7 44044 .5 F .5"
), header=TRUE)
require(tidyverse)
data %>% mutate(ij=count.i*count.j) %>%
select(-count.i,-count.j) %>%
dcast(id+V1~V2,value.var="ij") %>%
select(-id) %>%
as.matrix()
V1 A B C D E F G [1,] 10000 1.0 NA NA NA NA NA NA [2,] 20000 NA 0.33 0.33 0.33 NA NA NA [3,] 19482 NA NA NA NA 1.00 NA NA [4,] 22222 NA NA NA NA NA 0.50 0.5 [5,] 34556 NA NA NA NA 1.00 NA NA [6,] 10101 0.5 0.50 NA NA NA NA NA [7,] 20000 NA 0.25 NA NA NA 0.25 NA [8,] 44044 NA NA NA NA 0.25 0.25 NA
适应您的新解释。