2016-04-08 176 views
1

我的數據幀D就是這樣。使用其他數據幀的索引將值賦給矩陣

D$fit同時具有距離(0:6)和分克(1:3)信息

D <- read.table(header = TRUE, text = " 
    distance dg fit 
1   0 1 A 
2   1 1 B 
3   2 1 C 
4   3 1 D 
5   4 1 E 
6   5 1 F 
7   6 1 G 
8   0 2 H 
9   1 2 I 
10  2 2 J 
11  3 2 K 
12  4 2 L 
13  5 2 M 
14  0 3 O 
15  1 3 P 
16  2 3 Q 
17  3 3 R 
") 

欲擬合值分配給此矩陣,md,對應於距離和分克。

md <- matrix(1:21, nrow = 7) 
colnames(md) <- c(1:3) 
rownames(md) <- c(0:6) 
md[] <- NA 

    1 2 3 
0 NA NA NA 
1 NA NA NA 
2 NA NA NA 
3 NA NA NA 
4 NA NA NA 
5 NA NA NA 
6 NA NA NA 

我做過嘗試,但與此代碼的失敗

cmd = expand.grid(i=seq(0,6), j = seq(1,3)) 
i <- seq(0,6) 
j <- seq(1,3) 
md[i,j] <- D$fit[D$distance == cmd[1] & D$dg == cmd[2]] 
+2

我不認爲你需要填表 - 你可以一口氣完成 - '(D,tapply(fit,list(distance,dg),FUN = as.character)' – thelatemail

+0

是!它的工作..謝謝〜 –

回答

0

我們可以使用acastlibrary(reshape2)

library(reshape2) 
acast(D, distance~dg, value.var="fit") 

或者從base R

相關問題