R中每个群和群内子群的指数

oknwwptz  于 2023-04-18  发布在  其他
关注(0)|答案(1)|浏览(115)

我的数据集由两个变量组成。第一个变量有10个唯一的组。在每个组中,有可变数量的子组(数据集中的第二个变量)。我想生成一个索引,它将标识组和该组中的每个子组。例如,如果group 1(在我的第一个变量中)有5个子组,索引应该是01-01,01-02,01-03,等等。当第一个变量更改为group 2时,我希望索引增加1 -即,索引现在应该是02-01,02-02,02 - 03,02 - 02,02 - 02,02 - 03,02 - 03,02 - 03,02 - 03,02 - 03,02 - 03,02 - 03,02 - 03,02 - 03,02 - 03,02 - 03,02 - 03,02 - 03,02 - 03,02 - 03,02 - 03,02 - 03,02 - 03,02 - 03,02 - 03,02 - 03,02 - 03,02 - 03,02 - 03,02 - 03,03 - 03 - 0等等。
我还没能想出一种方法来完成这个任务,而不会陷入for循环和if语句的迷宫。我的目标是将其推广到一个组中的任意数量的子组(例如,如果第二个子组中有一个额外的子组)。
编辑:这是我的数据集的前3行,最多4列。很抱歉没有在原始帖子中提供。

structure(list(d1 = c("animal and animal products edible", "animal and animal products edible", 
"animal and animal products edible"), d2 = c("animal edible except for breeding", 
"animal edible except for breeding", "animal edible except for breeding"
), d3 = c("cattle", "cattle", "cattle"), d4 = c("bulls for breeding", 
"cows for breeding", "other cattle")), row.names = c(NA, 3L), class = "data.frame")
o7jaxewo

o7jaxewo1#

为了演示的目的,我模拟了一些随机数据。

set.seed(123)
DF <- data.frame(Group1 = paste0("0", sample(c(1:9), 20, replace = T)),
                 Group2 = paste0("0", sample(c(1:9), 20, replace = T)))

下面的代码应该可以工作,并且不会太复杂而无法扩展到第三级分组(如果有的话)。

DF[, "Group12"] <- paste0(DF[, "Group1"], "-", DF[, "Group2"])

相关问题