2017-09-27 81 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

相关问题