df <- data.frame(animal = c("dog", "dog", "cat", "dog", "cat", "cat"),
hunger = c(0, 1, 1, 0, 1,1))
我有一个类似上面的数据框,有两列,一列包含类别,另一列包含二进制数据。
我希望重塑 Dataframe ,将类别(“动物”)列拆分为两列,将“动物”列的值作为列名,将另一列(饥饿)的值作为单元格值,即
预期输出:
df <- data.frame(dog = c(0, 1, 0),
cat = c(1, 1, 1))
我怎样才能做到这一点?
7条答案
按热度按时间km0tfn4u1#
在不同类别之间长度不均匀的情况下,我们可以使用
或
我们将获得
伪数据
我们也可以使用
unstack
,例如:或
p8h8hvxi2#
使用 * 拆分 *:
jc3wubiy3#
碱基R:
dm7nw8vv4#
使用
data.table
nbysray55#
您可以使用
pivot_wider
,首先为每个组创建一个id来标识重复项,然后像这样使用names_from
和values_from
:创建于2023年3月17日,使用reprex v2.0.2
zazmityj6#
一个整洁的框架方式
碱基R
cunj1qz17#
将
tidyverse/purrr
溶液加入混合物中: