首页 > 解决方案 > 循环遍历数据框并将值分配给新列中的值

问题描述

我正在尝试基于uniqueLocation使用 R对数据进行分组。

它从 101 开始,一直到 701。

我希望 101 为 1 和 701 为 4

这将达到最大值 16,一旦计数达到 16,它将重置回 1 并继续到 16,直到数据集被分配一个介于 1 和 16 之间的值

标签: r

解决方案


您可以使用matchandunique获取每个条目的唯一 ID 号。然后,您可以在每 16 个值之后使用%% 16它来重置它。

df$ID <- match(df$UniqueLocation, unique(df$UniqueLocation)) %% 16
df$ID[df$ID == 0] <- 16

要为每 16 个值分配一个唯一的字符串,我们可以使用:

df$ID1 <- paste0('Test_', ceiling(match(df$UniqueLocation, 
                                  unique(df$UniqueLocation))/16))

推荐阅读