library( dplyr)
library( tidyr)
d0 <- data.frame ( name = LETTERS[ 1 : 20 ] ,
referrer1 = sample( c( letters[ 1 : 5 ] , NA) , 20 , replace = T) )
d1 <-
d0 %>%
select( name, referrer1) %>%
filter( ! is.na ( referrer1) ) %>%
spread( referrer1, referrer1) %>%
mutate_if( is.factor , as.character ) %>%
# 在屬性為factor的情況下,如果要取代的值不存在於原本的level一樣會變na
# 所以先將所有factor的column轉為character
replace( is.na ( .) , 0 ) %>%
# 取代na為 0
mutate_at( vars( - name) ,
.funs = funs( replace( . != 0 , 0 , 1 ) ) )
# 把所有非0的字串取代為1(僅針對name以外的column執行)
CmxpYnJhcnkoZHBseXIpCmxpYnJhcnkodGlkeXIpCgpkMCA8LWRhdGEuZnJhbWUobmFtZSA9IExFVFRFUlNbMToyMF0sCiAgICAgICAgICAgICByZWZlcnJlcjEgPSBzYW1wbGUoYyhsZXR0ZXJzWzE6NV0sIE5BKSwgMjAsIHJlcGxhY2UgPSBUKSkKCgpkMSA8LQogICAgIGQwICU+JQogICAgIHNlbGVjdChuYW1lLCByZWZlcnJlcjEpICU+JQogICAgIGZpbHRlcighaXMubmEocmVmZXJyZXIxKSkgJT4lCiAgICAgc3ByZWFkKHJlZmVycmVyMSwgcmVmZXJyZXIxKSAlPiUKICAgICBtdXRhdGVfaWYoaXMuZmFjdG9yLCBhcy5jaGFyYWN0ZXIpICU+JQogICAgIyDlnKjlsazmgKfngrpmYWN0b3LnmoTmg4Xms4HkuIvvvIzlpoLmnpzopoHlj5bku6PnmoTlgLzkuI3lrZjlnKjmlrzljp/mnKznmoRsZXZlbOS4gOaoo+acg+iuim5hCiAgICAjIOaJgOS7peWFiOWwh+aJgOaciWZhY3RvcueahGNvbHVtbui9ieeCumNoYXJhY3RlcgogICAgIHJlcGxhY2UoaXMubmEoLiksIDApICU+JQogICAgIyDlj5bku6NuYeeCuiAwCiAgICAgbXV0YXRlX2F0KHZhcnMoLW5hbWUpLAogICAgICAgICAgICAgICAuZnVucyA9IGZ1bnMoIHJlcGxhY2UoLiAhPSAwICwgMCAsIDEgKSApKQogICAgIyDmiormiYDmnInpnZ4w55qE5a2X5Liy5Y+W5Luj54K6MSjlg4Xph53lsI1uYW1l5Lul5aSW55qEY29sdW1u5Z+36KGMKQ==