如何根据r中的值表创建真值表

时间:2018-06-01 19:17:26

标签: r sparse-matrix truthtable

我正在尝试创建一个基于不同值创建真值表的脚本。

实施例

First table

这个的真值表是

Truth table version of above table

我对r很新。我知道它在数据分析方面有很多很棒的功能,但这会有很大帮助。看着可能用稀疏矩阵实现某些东西,但我不知道。

1 个答案:

答案 0 :(得分:0)

下次,请在问题中包含数据,并避免放置图片。

可以使用data.table

数据:

library('data.table')
df1 <- data.table(Name = c('Bob', 'Bob', 'Luke'),
                  Location = c('Texas', 'Ohio', 'Utah'),
                  Pet = c('Dog', 'Cat', 'Dog'),
                  Coder = c(1,0,1),
                  stringsAsFactors = FALSE )

<强>代码:

df1[, id := .I ] # assign unique id, and later it will be removed
select_cols <- c('Name', 'Location', 'Pet') # selected columns
dcast( data = melt(df1, measure.vars = select_cols ),  
       formula = "id + Coder ~ value", 
       fun.aggregate = length, 
       fill = 0  )[, id := NULL ][]

#    Coder Bob Cat Dog Luke Ohio Texas Utah
# 1:     1   1   0   1    0    0     1    0
# 2:     0   1   1   0    0    1     0    0
# 3:     1   0   0   1    1    0     0    1