Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何按因子拆分数据帧,然后按ID变量合并_R_Merge_Split_Do.call - Fatal编程技术网

R 如何按因子拆分数据帧,然后按ID变量合并

R 如何按因子拆分数据帧,然后按ID变量合并,r,merge,split,do.call,R,Merge,Split,Do.call,所以我有一个有两个向量的数据帧。时间和团队 df <- data.frame(time=rep(seq(1:3),3), team=LETTERS[rep(1:3,each=3)]) > time team >1 1 A >2 2 A >3 3 A >4 1 B >5 2 B >6 3 B >7 1 C >8 2 C >9 3

所以我有一个有两个向量的数据帧。时间和团队

df <- data.frame(time=rep(seq(1:3),3), team=LETTERS[rep(1:3,each=3)])

>  time team
>1    1    A
>2    2    A
>3    3    A
>4    1    B
>5    2    B
>6    3    B
>7    1    C
>8    2    C
>9    3    C
我知道了如何使用split或dlply拆分data.frame,但使用cbind或merge将数据帧重新组合在一起还没有成功


此外,每个(分割)列表的长度都不同,因此,如果您能帮助将NA添加到混合列表中,我们将不胜感激。谢谢。

您可以使用
重塑
实现此目的:

> df$tmp <- df$team
> reshape(df, idvar='time', timevar='team', direction='wide')
  time tmp.A tmp.B tmp.C
1    1     A     B     C
2    2     A     B     C
3    3     A     B     C
>df$tmp重塑(df,idvar='time',timevar='team',direction='wide')
时间tmp.A tmp.B tmp.C
1 A B C
2 A B C
3 A B C

您的输入无法实现预期的输出,因为
时间
团队
是完全共线的。哎呀,很抱歉。刚刚更新了输入df以反映更改。您还需要更新代码。@Richard,来自
库(重塑2)
dcast(df,time~team)
。没用吗?只是用了@保罗,我来试试。。。。
> df$tmp <- df$team
> reshape(df, idvar='time', timevar='team', direction='wide')
  time tmp.A tmp.B tmp.C
1    1     A     B     C
2    2     A     B     C
3    3     A     B     C