2017-09-27 58 views
2

我在需要劃分的數據集中有多個複選框。其中一個複選框問題詢問哪些狀態的人在(因此有50個複選框選項)實踐的數據在下面的格式導出:分解包含多個答案的複選框列到R中的單獨列中

ID q143 
1 1,4,6 

但我需要它在這個格式(對於各個複選框真/假格式(未選中/選中)

ID q143_1 q143_2 q143_3 q143_4 q143_5 q143_6 
100 1  0  0  1  0  1 

由於這是需要製作的大量列......關於如何輕鬆區分這個問題的任何想法? 我在想如果,那麼陳述,但我認爲這將需要一段時間。

在此先感謝!

回答

0

我們可以使用strsplit

v1 <- as.numeric(strsplit(df1$q143, ",")[[1]]) 
v2 <- +(Reduce(`:`, range(v1)) %in% v1) 
cbind(df1[1], setNames(as.data.frame.list(v2), paste0(names(df1)[2], "_", seq_along(v2)))) 
# ID q143_1 q143_2 q143_3 q143_4 q143_5 q143_6 
#1 1  1  0  0  1  0  1 
+0

謝謝您的回答!我試圖這樣做,但我一直得到一個非字符參數。有任何想法嗎? –

+0

@ Heather.W可能你有'factor'類。試試'strsplit(as.character(df1 $ q143),「,」)' – akrun

相關問題