В следующий раз, пожалуйста, включите данные в свой вопрос и избегайте помещать изображения.
Может быть это с использованием 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