Я бы попытался связать другой столбец с именем "value" и установить value = TRUE
.
df <- data.frame(cbind(1:10, 2:11, 1:3))
colnames(df) <- c("ID","DATE","SECTOR")
df <- data.frame(df, value=TRUE)
Затем измените форму:
reshape(df, idvar=c("ID","DATE"), timevar="SECTOR", direction="wide")
Проблема с использованием функции reshape
состоит в том, что по умолчанию для пропущенных значений является NA (в этом случае вам придется повторять и заменять их на FALSE).
В противном случае вы можете использовать cast
из пакета reshape
( см. Этот вопрос для примера ) и установить значение по умолчанию FALSE
.
df.wide <- cast(df, ID + DATE ~ SECTOR, fill=FALSE)
> df.wide
ID DATE 1 2 3
1 1 2 TRUE FALSE FALSE
2 2 3 FALSE TRUE FALSE
3 3 4 FALSE FALSE TRUE
4 4 5 TRUE FALSE FALSE
5 5 6 FALSE TRUE FALSE
6 6 7 FALSE FALSE TRUE
7 7 8 TRUE FALSE FALSE
8 8 9 FALSE TRUE FALSE
9 9 10 FALSE FALSE TRUE
10 10 11 TRUE FALSE FALSE