我正在尝试创建一个基于不同值创建真值表的脚本。
实施例
这个的真值表是
我对r很新。我知道它在数据分析方面有很多很棒的功能,但这会有很大帮助。看着可能用稀疏矩阵实现某些东西,但我不知道。
答案 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