我的原始资料长相如下:
> check18.1 %>%
+   select(name, referrer1) %>%
+   head()
  name                       referrer1
  <chr>                      <chr>
1 温○珠                     王○芸
2 大○食品                   陈○如
3 尤○女                     <NA>
4 尤○玉                     <NA>
5 王○仁                     王○芸
6 王○修                     <NA>
透过下列方式,转为如下模样:
> check18.2 <-
+   check18.1 %>%
+   select(name, referrer1) %>%
+   filter(!is.na(referrer1)) %>%
+   spread(referrer1, referrer1)
> head(check18.2)
        name     王○芸  陈○如
1       温○珠   王○芸  <NA>
2       大○食品  <NA>    陈○如
3       尤○女   <NA>    <NA>
4       尤○玉   王○芸  <NA>
5       王○仁   <NA>    <NA>
6       王○修   <NA>    <NA>
我期待把资料重新编码后变成这样:
        name     王○芸  陈○如
1       温○珠        1    0
2       大○食品       0    1
3       尤○女        0    0
4       尤○玉        1    0
5       王○仁        0    0
6       王○修        0    0
【我的作法】
先把<NA>都先变成0
> check18.2[is.na(check18.2)] <- 0
        name     王○芸  陈○如
1       温○珠   王○芸  0
2       大○食品  0       陈○如
3       尤○女   0       0
4       尤○玉   王○芸  0
5       王○仁   0       0
6       王○修   0       0
再把文字内容改成1,结果......
> check18.2[check18.2 != 0] <- 1
        name     王○芸  陈○如
1        1            1        0
2        1             0        1
3        1            0        0
4        1            1        0
5        1             0        0
6        1            0        0
字段name里面的资料也都被取代为1了,这不是我想要的结果!
如果逐栏订正是可以(check18.2$王○芸[check18.2$王○芸 == '王○芸'] -> 1)
但是资料展开的字段其实有20多项,故想要在此寻求简单快速的方法。
烦请指教,感谢~