当不同类别之间长度不均匀的情况下,我们可以使用
list2DF(
lapply(
. <- unstack(df, hunger ~ animal),
`length<-`,
max(lengths(.))
)
)
or
list2DF(
lapply(
. <- unstack(rev(df)),
`length<-`,
max(lengths(.))
)
)
我们将得到
cat dog
1 1 0
2 1 1
3 1 0
4 0 NA
虚拟数据
df <- data.frame(
animal = c("dog", "dog", "cat", "dog", "cat", "cat", "cat"),
hunger = c(0, 1, 1, 0, 1, 1, 0)
)
我们还可以使用unstack
, e.g.,
> unstack(rev(df))
cat dog
1 1 0
2 1 1
3 1 0
or
> unstack(df, hunger ~ animal)
cat dog
1 1 0
2 1 1
3 1 0