gpt4 book ai didi

将数据框 reshape 为宽形状

转载 作者:行者123 更新时间:2023-12-04 09:19:26 31 4
gpt4 key购买 nike

数据包含两个变量:id 和 grade。每个id可以有多条记录每个年级。

dat <- data.frame(id = c(1,1,1,2,2,2,2,3,3,4,5,5,5),
grade = c("a", "b", "c", "a", "a", "b", "b", "d", "f", "c", "a", "e", "f"))

我想将数据 reshape 为宽形状,使每个 id 只有一条记录每个唯一的等级都变成一个单独的列。每列的值是 0 或 1,取决于每个 id 的等级。

最终数据集如下所示:

id  a   b   c   d   e   f
1 1 1 1 0 0 0
2 1 1 0 0 0 0
3 0 0 0 1 0 1
4 0 0 1 0 0 0
5 1 0 0 0 1 1

我试过了,但没有成功。

  n.dat <- reshape(dat, timevar = "grade",idvar = c("id"),direction = "wide") 

最佳答案

您可以简单地将值,然后根据> 0 条件转换为逻辑值,然后使用+ 一元转换回数字运算符(或者如果你想减少打高尔夫球,只需 + 0)

+(table(dat) > 0)
# grade
# id a b c d e f
# 1 1 1 1 0 0 0
# 2 1 1 0 0 0 0
# 3 0 0 0 1 0 1
# 4 0 0 1 0 0 0
# 5 1 0 0 0 1 1

关于将数据框 reshape 为宽形状,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34275171/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com