gpt4 book ai didi

R:将无序长数据转换为宽数据

转载 作者:行者123 更新时间:2023-12-02 07:25:55 26 4
gpt4 key购买 nike

我希望将无序的长数据转换为宽数据。

mydata <- data.frame(cat   = c('a','a','a','b','c','c','c','c'),
color = c( 1, 1, 1, 2, 1, 1, 1, 1),
hat = c( 1, 1, 2, 2, 1, 2, 1, 2),
shoe = c( 0, 1, 1, 2, 1, 1, 1, 3))

cat 是 ID 变量,而颜色是在 cat 内不会改变的描述性统计数据。

mydata
cat color hat shoe
1 a 1 1 0
2 a 1 1 1
3 a 1 2 1
4 b 2 2 2
5 c 1 1 1
6 c 1 2 1
7 c 1 1 1
8 c 1 2 3

最终输出

  cat color hat1 shoe1 hat2 shoe2 hat3 shoe3 hat4 shoe4
1 a 1 1 0 1 1 2 1 NA NA
2 b 2 2 2 NA NA NA NA NA NA
3 c 1 1 1 2 1 1 1 2 3

我似乎面临的挑战是没有“时间变量”。

最佳答案

通过 cat 添加一个计数器,然后你可以将它用作你的时间变量:

library(data.table)
mydata <- data.table(cat = c('a','a','a','b','c','c','c','c'),
color = c( 1, 1, 1, 2, 1, 1, 1, 1),
hat = c( 1, 1, 2, 2, 1, 2, 1, 2),
shoe = c( 0, 1, 1, 2, 1, 1, 1, 3))

mydata[, "dummy.id" := seq(.N), by=cat]
widedata <- reshape(mydata, idvar='cat', timevar='dummy.id', direction='wide')

关于R:将无序长数据转换为宽数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31970714/

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