如何制作一个数据集,其中的行代表编号。集群,而列是两个具有不同集群值的变量

How to make a dataset with rows representing the no. of clusters while columns are two variables with different value for clusters

我很困惑。 我有 50 个集群,每个集群的大小都不同,我有两个变量“年”和“收入水平”。 我现在拥有的数据集有 10,000 行,每行代表一个人。 我想要做的是从这个数据框形成一个新的数据集,其中每一行代表集群的数量 (50),列是两个变量 + 集群变量。问题是这两个变量(我们称之为研究水平协变量)对于聚类没有唯一值。 那么我如何将它们放在每个集群的一个单元格中?

X1<-c(1,1,1,2,2,2,2,2,3,3,4,4,4,4,4,4) #Clusters
X2<c(1,2,3,1,1,1,1,1,1,2,3,3,1,1,2,2,2)  #Covariate1
X3<-c(1991,2001,2002,1998,2014,2015,1990,
2002,2004,2006,2006,2006,2005,2003,2003,2000) #Covariate2


data<-data.frame(X1,X2,X3)

我的期望输出应该是这样的:

|Clusters|Covariet1|Covariate2|
|--------|---------|----------|
|1       | ?       |?         |
|2       | ?       |?         |
|3       | ?       |?         |
|4       | ?       |?         |

这意味着不是 16 行的数据框,而是 4 行的数据框

以下是如何使用每个聚类的协变量平均值来聚合数据:

df <- data.frame(X1 = c(1,1,1,2,2,2,2,2,3,3,4,4,4,4,4,4),
                  X2 = c(1,2,3,1,1,1,1,1,1,2,3,3,1,1,2,2),
                  X3 = c(1991,2001,2002,1998,2014,2015,1990,2002,2004,2006,2006,2006,2005,2003,2003,2000)
                  )
library(tidyverse)
df %>% group_by(X1) %>% summarise(mean_cov1 = mean(X2))
# A tibble: 4 x 2
     X1 mean_cov1
* <dbl>     <dbl>
1     1       2  
2     2       1  
3     3       1.5
4     4       2  

对于您正在处理的案例,您必须决定最相关的聚合是什么。您也可以一次创建多个。