【发布时间】:2019-09-26 00:47:56
【问题描述】:
我一直在使用 tidyr R 包中的 collect() 来整理我的调查数据。
不知道在整理数据的时候有没有办法处理多项选择题?
这个问题不是关于一个特定的错误,而是更多关于什么策略最合适。
想象一下下面的小标题:
tb1 <- tribble(~id,~x1,~x2,~x3,~y1,~y2,~z,
"Harry",1,1,NA,NA,1,"No",
"Jess",NA,1,1,1,1,"Yes",
"George",NA,NA,1,NA,1,"No")
在收集这多个问题的结果时,我得到(逻辑上)“Harry”、“Jess”和“George”的多行:
tb1 %>%
gather(X,val,x1:x3,-id,-z) %>%
filter(!is.na(val)) %>%
select(-val) %>%
gather(Y,val,y1:y2,-id,-X,-z) %>%
filter(!is.na(val)) %>%
select(-val)
# A tibble: 7 x 4
id z X Y
<chr> <chr> <chr> <chr>
1 Jess Yes x2 y1
2 Jess Yes x3 y1
3 Harry No x1 y2
4 Harry No x2 y2
5 Jess Yes x2 y2
6 Jess Yes x3 y2
7 George No x3 y2
我有点担心多个条目,并且想知道是否有一个好的策略来处理需要收集二进制列的调查的多项选择题。
最后,我希望能够绘制和分析各种变量的值:即人们选择 y2 的次数。
这种长格式似乎不适合分析这个,因为所有 Harry 两次提到 y2 的 count() 都会上升。
我对这个话题的提问流程如下:
- 将多个响应收集到单个列中是否更好/更容易进行分析?
- 如果是,您如何有效地做到这一点?
- 如果不是,当我将多重响应保留为长格式时,在进一步分析中需要注意哪些含义?
- 您如何将这些含义融入您的代码中? (也许是 id 的特定“组”参数?你能给我举个例子吗?)
【问题讨论】: