r语言 - 如何将数据集划分为不同的组并生成具有组名称的变量

  • 本文关键字:变量 r语言 数据集 划分 r loops
  • 更新时间 :
  • 英文 :


我创建了一个包含 10.000 个观测值的数据集,其中包含 2 个随机生成的变量。现在,我想将这 10.000 个观测值分成 100 组,并生成一个具有group_numbergroup_id的变量。

到目前为止,我所做的——

csize = 100  # number of clusters
n = 10000    # number of observations in each cluster 
p = 2        # number of variables 
# Generating matrix with 100 normally distributed values for each p
set.seed(1)
mydata = matrix(rnorm(n*p, mean=0, sd = 1), n, p)   

现在,我想将这些观测值分成 100 个聚类(每个聚类有 100 个观测值(,然后添加两个变量:cluster_namegroup_id。在变量cluster_name下,我想放cluster_1, ..., cluster_100,在每个聚类中,我想为观测生成group_id

提前感谢您的帮助。

这可以一次性完成,如下所示:

set.seed(1)
df <- data.frame(
cluster_name = rep(paste0("cluster_",1:100), each=100),
group_id     = rep(1:100, each=100),
var1         = rnorm(10000),
var2         = rnorm(10000),
stringsAsFactors = FALSE
)

然后,我们可以查看数据帧的第一行/最后一行:

head(df)
#  cluster_name group_id       var1       var2
#1   cluster_1        1 -0.6264538 -0.8043316
#2   cluster_1        1  0.1836433 -1.0565257
#3   cluster_1        1 -0.8356286 -1.0353958
#4   cluster_1        1  1.5952808 -1.1855604
#5   cluster_1        1  0.3295078 -0.5004395
#6   cluster_1        1 -0.8204684 -0.5249887
tail(df)
#      cluster_name group_id      var1       var2
#9995  cluster_100      100 0.2096655 -0.1536432
#9996  cluster_100      100 0.9595076  1.5789764
#9997  cluster_100      100 0.4366036 -0.8131629
#9998  cluster_100      100 0.4993666  0.2795815
#9999  cluster_100      100 0.8939798 -1.2650635
#10000 cluster_100      100 0.2573871  0.5041590

最新更新