2016-04-08 8 views
1

Mein Datenrahmen, ist wie folgt.Weisen Sie Werte der Matrix mit dem Index eines anderen Datenrahmens zu

D$fit hat sowohl die Entfernung (0: 6) und dg (1: 3) info

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 
") 

I fit Werte dieser Matrix zugewiesen werden soll, md, distanzieren, und dg entspricht.

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 

Ich habe versucht, aber nicht mit diesem Code

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

Ich glaube nicht, dass Sie eine Tabelle ausfüllen müssen - Sie könnten es einfach in einem gehen - 'mit (D, tapply (fit, Liste (Abstand, dg), FUN = as.character)) – thelatemail

+0

Ja! Es funktioniert .. Danke ~ –

Antwort

0

Wir acast von library(reshape2)

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

Oder mit reshape von base R können

reshape(D, idvar="distance", timevar="dg", direction="wide") 
Verwandte Themen