library(magrittr)
library(data.table)

# create fake data
d <- data.table(id = 1:20)
d[, trt1 := sample(c(LETTERS[1:3], NA) %>% rep(50) %>% sample(20))]
d[, trt2 := sample(c(LETTERS[1:3], NA) %>% rep(50) %>% sample(20))]
d

# 先 melt() 轉成 long table 再 dcast() 按 value 計數
d.long <- melt(d, id.vars = "id", variable.name = "TRT")
d.trans <- dcast(d.long, id ~ value, fun.aggregate = length)

# 原資料前五列
d[1:5, ]
# 轉換後前五列；數字表示出現次數，NA欄表示NA出現次數
d.trans[1:5, ]

# d.trans 改格式成Yes或空格
data.table(id = d.trans$id, ifelse(d.trans[, -1] > 0, "Yes", ""))
