首页 > 解决方案 > 基于列分组

问题描述

我不知道如何解决这个问题。我尝试使用 dplyr、转置等进行头脑风暴,但想不出解决方案。我想我会向社区寻求帮助。

DF <- data.frame(ID = c(1, 1, 2, 2, 3, 3), 
                Time = c(0, 1, 0, 1, 0, 1), 
                X = c(1, 2, 3, 4, 5, 6), 
                Y = c(7, 8, 9, 10, 11, 12))

我在上面列出了一个示例数据集。因此,尝试是否有可能按时间进行分组。例如,它将来自:

ID    Time     X      Y 
1     0        1      7
1     1        2      8
2     0        3      9
2     1        4     10
3     0        5     11
3     1        6     12 

ID    Time_0.X    Time_0.Y   Time_1.X    Time_1.Y     
1            1         7            2          8
2            3         9            4         10                
3            5        11            6         12 

如果有任何想法,请告诉我。谢谢!

标签: r

解决方案


非常简单的枢轴更宽

library(tidyverse)

DF <- data.frame(ID = c(1, 1, 2, 2, 3, 3), 
                 Time = c(0, 1, 0, 1, 0, 1), 
                 X = c(1, 2, 3, 4, 5, 6), 
                 Y = c(7, 8, 9, 10, 11, 12))


DF %>% 
  pivot_wider(names_from = Time,values_from = X:Y)

推荐阅读