根据groub_by分配具有重复ID的分组变量/索引

问题描述 投票:0回答:1

我正在尝试改变这个 df 以获得两个新变量作为调查 ID 的形式。从 df 我想创建一个变量“调查”,它将按“年份”“日期”“城市”分组,然后如果“楼层”相同,则获得相同的“调查”。然后我想要第二个新变量“Rep”,它可以简单地按“年份”“日期”“城市”对组中的行进行总计。

当前 df:

enter image description here

所需的df:

enter image description here

我可以使用以下方式获得“代表”:

df <- df %>% group_by(年份,城市) %>% 变异(代表= seq_along(日期))

但我完全不知道如何生成“调查”变量。

这接近获得我想要的“调查”ID,但为 group_by 内的每个楼层生成 1,2 df <- df %>% group_by(年份,城市) %>% 变异(调查= seq_along(地板))

遵循这个答案将唯一的ID分配给dplyr中分组变量中的连续行 我也接近了,但组内的每个楼层仍然得到 1,2,1,2,而不是 1,1,2,2

df <- df %>% group_by(年份,城市) %>% 突变(调查=代表(seq(1,2),长度= 2))

dplyr group-by mutate
1个回答
0
投票

这应该有效:

df <- df %>%
  group_by(Year, Date, City) %>%
  mutate(Survey = match(Floor, unique(Floor))) %>% #Assigns an id number to each of the matches starting from one  
  mutate(Rep = seq_along(Date)) %>%                 
  ungroup()
© www.soinside.com 2019 - 2024. All rights reserved.