2016-11-29 67 views
0

需要您對我無法解釋的特定事物的幫助。 下面的代碼在R中使用傻瓜編碼的熱門編碼

library(dummies) 
columna <- c(1,2,3) 
columnb <- c("AR","AT","AF") 
columnc <- c("word1", "word2", "word3") 
alldata <- data.frame(columna,columnb,columnc) 
alldata <- dummy.data.frame(alldata, names=c("columnc"), sep="_") 
alldata 

是給我

columna columnb columnc_word1 columnc_word2 columnc_word3 
1  1  AR    1    0    0 
2  2  AT    0    1    0 
3  3  AF    0    0    1 

現在想象一下,我有

columnc <- c("word1", "word2 word3", "word3 word1") 

可以請別人解釋我如何獲得?

columna columnb columnc_word1 columnc_word2 columnc_word3 
1  1  AR    1    0    0 
2  2  AT    0    1    1 
3  3  AF    1    0    1 

問候,

回答

1

這裏是一個tidyverse方式:

library(tidyverse) 
alldata %>% 
     separate_rows(columnc) %>% mutate(count = 1) %>% 
     spread(columnc, count, fill = 0, sep = "_") 

# columna columnb columnc_word1 columnc_word2 columnc_word3 
#1  1  AR    1    0    0 
#2  2  AT    0    1    1 
#3  3  AF    1    0    1