r - r 中具有二进制输出的数据透视表

标签 r

<分区>

我有以下数据集

#datset

id  attributes  value
1   a,b,c        1
2   c,d          0
3   b,e          1

我希望用它们制作一个数据透视表并为属性分配二进制值(如果属性存在则为 1,否则为它们分配 0)。我的理想输出如下:

#output

id  a   b   c   d   e   Value
1   1   1   1   0   0   1
2   0   0   1   1   0   0
3   0   1   0   0   1   1

非常感谢任何提示。

最佳答案

我们将“属性”列拆分为“,”,使用qdapTools 中的mtabulate 和第一个和第三个cbind 获取频率专栏。

library(qdapTools)
cbind(df1[1], mtabulate(strsplit(df1$attributes, ",")), df1[3])
#  id a b c d e value
#1  1 1 1 1 0 0     1
#2  2 0 0 1 1 0     0
#3  3 0 1 0 0 1     1

关于r - r 中具有二进制输出的数据透视表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39715990/

相关文章:

r - 在没有矢量化 FUN 参数的情况下调用外积

r - Union n igraphs后如何恢复属性?

r - 将变量从 VBA 传递到 R-Script

python - 当 'a' 和 'b' 离平均值太远时,Python 和 R 中的法线被截断

r - 使用 R(DBI 包)从 SQL Server 表中删除行

r - data.table 中的横截面子集

r - 如何在 R 的 httr::oauth2.0_token 中检索用于身份验证的 URL?

r - 为什么这行得通?创建与基函数同名的逻辑函数仍然允许使用该函数

regex - 如何在通过 R 中的正则表达式匹配找到字母后将其替换为小写字母

r - sliderInput 的最小/最大值的交互式/响应式(Reactive)更改