Ваши данные
transID <- c(48864208,48864208,48864266,48864266,48864266,48864266,48864276,48864276,
48864276,48864276,48864282,48864282,48864282,48864282,48864282,48864282,
48864282,48864282,48864282,48864296,48864296,48864300,48864300,48864300,
48864300,48864300,48864300,48864300,48864300,48864300)
item <- c("dinner","cleaning","breakfast","breakfast","drink","dinner","dinner",
"dinner","dinner","dinner","breakfast","snack","snack","snack","breakfast",
"dinner","dinner","breakfast","dinner","dinner","dinner","fruit","fruit",
"fruit","dinner","breakfast","breakfast","drink","cleaning","dinner")
head(data.frame(transID,item))
transID item
1 48864208 dinner
2 48864208 cleaning
3 48864266 breakfast
4 48864266 breakfast
5 48864266 drink
6 48864266 dinner
использовать табличную функцию и ifelse для преобразования таблицы в двоичную матрицу
tab = table(transID,item)
tab
binarymat = ifelse(tab > 0,1,0)
print(binarymat)
# use write.csv function
write.csv(binarymat,"binarymat.csv")