下面是我数据示例:
> a
sample(dt$r, 10)
1 5
2 2,5,6
3 5
4 <NA>
5 <NA>
6 5
7 2,6
8 5
9 <NA>
10 <NA>
我想将这些值分隔开,并将它们转换为列。 Dataframe 应如下所示:
2 5 6
1 FALSE TRUE FALSE
2 TRUE TRUE FALSE
3 FALSE FALSE FALSE
4 FALSE FALSE FALSE
5 FALSE FALSE FALSE
6 FALSE TRUE FALSE
7 TRUE FALSE TRUE
8 FALSE TRUE FALSE
9 FALSE FALSE FALSE
10 FALSE FALSE FALSE
我尝试使用tidyr::spread或strsplit,但似乎找不到方法
3条答案
按热度按时间d8tt03nd1#
如果你非要概括的话,这不是最好的答案。
数据
代码
输出
f3temu5u2#
使用
strsplit
是一种方法。首先获取
strsplit
列表形式的 Dataframe ,然后获取不含<NA>
的值,最后查找与sapply
的匹配项。数据
kx5bkwkv3#
更一般的解决方案:
1.确定列中存在的所有唯一项
1.通过使用
grepl
查找字符串内匹配项,为每个唯一项创建列