【发布时间】:2016-04-08 03:19:04
【问题描述】:
我的数据框D 是这样的。
D$fit 同时具有距离 (0:6) 和 dg (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,对应距离和dg。
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]]
【问题讨论】:
-
我不认为你需要填满一张桌子 - 你可以一次完成 -
with(D, tapply(fit, list(distance,dg), FUN=as.character) ) -
是的!它有效..谢谢~