【发布时间】:2016-05-23 10:16:22
【问题描述】:
这是我的数据
information=structure(list(X = 1:15, Name = structure(c(1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L), .Label = c("ABL", "ARP"
), class = "factor"), Zone = c(1L, 2L, 7L, 8L, 9L, 10L, 11L,
12L, 1L, 2L, 4L, 5L, 6L, 7L, 9L), X3 = c(1L, 1L, 1L, 1L, 2L,
2L, 1L, 1L, 3L, 0L, 1L, 2L, 0L, 1L, 0L), X2 = c(0L, 0L, 0L, 1L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L), X5 = c(0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 1L, 0L, 0L), X4 = c(0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L), X1 = c(0L,
0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L)), .Names = c("X",
"Name", "Zone", "X3", "X2", "X5", "X4", "X1"), class = "data.frame", row.names = c(NA, -15L))
我希望所有的Name 有 12 个区域,当没有关联的Zone 时,Zones 将采用缺失值,而从 X1 到 X5 的值将采用 0。例如,请注意对于 Name ARP和 ABL 我每个都没有 3 区。
我试过这段代码
library(tidyr)
library(dplyr)
plot_data=information
plot_data$Zone=(factor(plot_data$Zone, levels = c(1:12)))
plot_data= plot_data %>% left_join(data_frame(Zone= factor(1:12)), .)
它给了我:
Zone X Name X3 X2 X5 X4 X1
(fctr) (int) (fctr) (int) (int) (int) (int) (int)
1 1 1 ABL 1 0 0 0 0
2 1 9 ARP 3 0 0 0 0
3 2 2 ABL 1 0 0 0 0
4 2 10 ARP 0 0 1 0 0
5 3 NA NA NA NA NA NA NA
6 4 11 ARP 1 0 0 1 0
7 5 12 ARP 2 0 0 0 0
8 6 13 ARP 0 0 1 0 0
9 7 3 ABL 1 0 0 0 0
10 7 14 ARP 1 0 0 0 0
11 8 4 ABL 1 1 0 0 0
12 9 5 ABL 2 0 0 0 0
13 9 15 ARP 0 1 0 0 0
14 10 6 ABL 2 0 0 0 1
15 11 7 ABL 1 0 0 0 0
16 12 8 ABL 1 0 0 0 0
我的代码有什么问题?
非常感谢!
【问题讨论】: